Github messages for voidlinux
 help / color / mirror / Atom feed
* [PR PATCH] New package: k2pdfopt
@ 2019-07-27 18:53 voidlinux-github
  0 siblings, 0 replies; only message in thread
From: voidlinux-github @ 2019-07-27 18:53 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 311 bytes --]

There is a new pull request by purpurrot against master on the void-packages repository

https://github.com/purpurrot/void-packages k2pdfopt
https://github.com/void-linux/void-packages/pull/13373

New package: k2pdfopt


A patch file from https://github.com/void-linux/void-packages/pull/13373.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-k2pdfopt-13373.patch --]
[-- Type: text/x-diff, Size: 19090 bytes --]

From a10d1cd5e2092c497a99829966e26fda692cf0f0 Mon Sep 17 00:00:00 2001
From: purpurrot <45521912+purpurrot@users.noreply.github.com>
Date: Sat, 27 Jul 2019 20:49:45 +0200
Subject: [PATCH] New package: k2pdfopt

---
 .../patches/01-CMakeLists.txt-fixes.patch     |  87 ++++++
 .../k2pdfopt/patches/02-header-fixes.patch    |  83 ++++++
 .../03-willuslib-ocrtess.c-tesscapi-fix.patch | 262 ++++++++++++++++++
 .../04-willuslib-wmupdfinfo.c-mupdf-fix.patch |  26 ++
 .../patches/05-willuslib-bmpmupdf.c-fix.patch |   8 +
 srcpkgs/k2pdfopt/template                     |  17 ++
 6 files changed, 483 insertions(+)
 create mode 100644 srcpkgs/k2pdfopt/patches/01-CMakeLists.txt-fixes.patch
 create mode 100644 srcpkgs/k2pdfopt/patches/02-header-fixes.patch
 create mode 100644 srcpkgs/k2pdfopt/patches/03-willuslib-ocrtess.c-tesscapi-fix.patch
 create mode 100644 srcpkgs/k2pdfopt/patches/04-willuslib-wmupdfinfo.c-mupdf-fix.patch
 create mode 100644 srcpkgs/k2pdfopt/patches/05-willuslib-bmpmupdf.c-fix.patch
 create mode 100644 srcpkgs/k2pdfopt/template

diff --git a/srcpkgs/k2pdfopt/patches/01-CMakeLists.txt-fixes.patch b/srcpkgs/k2pdfopt/patches/01-CMakeLists.txt-fixes.patch
new file mode 100644
index 00000000000..07931dd4347
--- /dev/null
+++ b/srcpkgs/k2pdfopt/patches/01-CMakeLists.txt-fixes.patch
@@ -0,0 +1,87 @@
+diff --git CMakeLists.txt CMakeLists.txt
+index 4a2378b5e9..2ed0ccca4b 100644
+--- CMakeLists.txt
++++ CMakeLists.txt
+@@ -54,0 +55 @@
++  set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${JASPER_LIBRARY})
+@@ -57,11 +58 @@
+-# paths from willuslib/wgs.c
+-find_program(GHOSTSCRIPT_EXECUTABLE gs
+-#  PATHS /usr/bin /usr/share/gs /usr/local/gs /opt/gs 
+-#    /usr/share/gs* /usr/local/gs* /opt/gs*
+-)
+-if(GHOSTSCRIPT_EXECUTABLE)
+-  set(HAVE_GHOSTSCRIPT 1)
+-  message(STATUS "Found ghostscript executable")
+-else()
+-  message(STATUS "Could NOT find ghostscript executable")
+-endif(GHOSTSCRIPT_EXECUTABLE)
++set(HAVE_GHOSTSCRIPT 1)
+@@ -70 +60,0 @@
+-# HAVE_GSL_LIB
+@@ -71,0 +62,6 @@
++pkg_check_modules(GSL gsl)
++if(GSL_FOUND)
++  set(HAVE_GSL_LIB 1)
++  include_directories(SYSTEM ${GSL_INCLUDEDIR})
++  set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${GSL_LDFLAGS})
++endif(GSL_FOUND)
+@@ -76,2 +71,0 @@
+-pkg_check_modules(MUPDF mupdf)
+-if(MUPDF_FOUND)
+@@ -79,7 +73 @@
+-  # (includes jbig2dec, openjpeg, freetype)
+-  include_directories(SYSTEM ${MUPDF_INCLUDEDIR})
+-  message(STATUS "mupdf libraries: ${MUPDF_LDFLAGS}")
+-  set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${MUPDF_LDFLAGS} 
+-    -lmupdf-js-none -lopenjpeg -ljbig2dec -ljpeg -lfreetype
+-  )
+-endif(MUPDF_FOUND)
++set(K2PDFOPT_LIB ${K2PDFOPT_LIB} -pthread -lmupdf -lmupdf-third -lopenjp2 -ljbig2dec -lfreetype -lharfbuzz)
+@@ -95,2 +91,14 @@
+-# HAVE_LEPTONICA_LIB
+-# HAVE_TESSERACT_LIB
++
++pkg_check_modules(LEPTONICA lept)
++if(LEPTONICA_FOUND)
++  set(HAVE_LEPTONICA_LIB 1)
++  include_directories(SYSTEM ${LEPTONICA_INCLUDEDIR})
++  set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${LEPTONICA_LDFLAGS} ${LEPTONICA_LIBRARIES})
++endif(LEPTONICA_FOUND)
++
++pkg_check_modules(TESSERACT tesseract)
++if(TESSERACT_FOUND)
++  set(HAVE_TESSERACT_LIB 1)
++  include_directories(SYSTEM ${TESSERACT_INCLUDEDIR})
++  set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${TESSERACT_LDFLAGS})
++endif(TESSERACT_FOUND)
+@@ -100 +108 @@
+-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DUSE_CMAKE -Wall")
++SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DUSE_CMAKE -Wall -Wextra")
+@@ -108,0 +117,2 @@
++include_directories(${PROJECT_BINARY_DIR})
++
+@@ -112 +121,0 @@
+-# ms
+@@ -114 +123 @@
+-target_link_libraries (k2pdfopt k2pdfoptlib willuslib ${K2PDFOPT_LIB})
++target_link_libraries(k2pdfopt k2pdfoptlib willuslib ${K2PDFOPT_LIB})
+@@ -115,0 +125 @@
++install(TARGETS k2pdfopt RUNTIME DESTINATION bin)
+diff --git willuslib/CMakeLists.txt willuslib/CMakeLists.txt
+index 463bbc95e7..104d02e360 100644
+--- willuslib/CMakeLists.txt
++++ willuslib/CMakeLists.txt
+@@ -9 +9 @@
+-    ocrjocr.c ocrtess.c pdfwrite.c point2d.c render.c strbuf.c string.c
++    ocrgocr.c ocrtess.c pdfwrite.c point2d.c render.c strbuf.c string.c
+@@ -24,0 +25,4 @@
++if(TESSERACT_FOUND)
++  set(WILLUSLIB_SRC ${WILLUSLIB_SRC} ocrtess.c)
++endif(TESSERACT_FOUND)
++
+@@ -29,3 +33 @@
+-# HAVE_GOCR_LIB: ocrjocr.c
+-# HAVE_TESSERACT_LIB: ocrtess.c 
+-
++# HAVE_GOCR_LIB: ocrgocr.c
diff --git a/srcpkgs/k2pdfopt/patches/02-header-fixes.patch b/srcpkgs/k2pdfopt/patches/02-header-fixes.patch
new file mode 100644
index 00000000000..1b5667fc09c
--- /dev/null
+++ b/srcpkgs/k2pdfopt/patches/02-header-fixes.patch
@@ -0,0 +1,83 @@
+diff --git willuslib/gslpolyfit.c willuslib/gslpolyfit.c
+index 5d2b6fbb85..f127bf054f 100644
+--- willuslib/gslpolyfit.c
++++ willuslib/gslpolyfit.c
+@@ -24,7 +24,10 @@
+ #include <stdlib.h>
+ #include "willus.h"
+ #ifdef HAVE_GSL_LIB
+-#include <gsl.h>
++#include <gsl/gsl_poly.h>
++#include <gsl/gsl_vector.h>
++#include <gsl/gsl_multifit.h>
++#include <gsl/gsl_matrix.h>
+ #endif
+ 
+ void gslpolyfit(double *x,double *y0,int n,int d,double *c0)
+diff --git willuslib/bmp.c willuslib/bmp.c
+index 583644d565..b2c36d5673 100644
+--- willuslib/bmp.c
++++ willuslib/bmp.c
+@@ -37,7 +37,7 @@
+ #include <jpeglib.h>
+ #endif
+ #ifdef HAVE_JASPER_LIB
+-#include <jasper.h>
++#include <jasper/jasper.h>
+ #endif
+ 
+ #define BOUND(x,xmin,xmax)  if ((x)<(xmin)) (x)=(xmin); else { if ((x)>(xmax)) (x)=(xmax); }
+diff --git willuslib/ocrtess.c willuslib/ocrtess.c
+index e1366e1aab..58aaf97fb9 100644
+--- willuslib/ocrtess.c
++++ willuslib/ocrtess.c
+@@ -24,8 +24,9 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <ctype.h>
+-#include <leptonica.h>
+-#include <tesseract.h>
++#include <locale.h>
++#include <leptonica/allheaders.h>
++#include <tesseract/capi.h>
+ #include "willus.h"
+ 
+ 
+diff --git willuslib/wleptonica.c willuslib/wleptonica.c
+index a4e3cfd61d..a85be0949d 100644
+--- willuslib/wleptonica.c
++++ willuslib/wleptonica.c
+@@ -23,7 +23,7 @@
+ #include "willus.h"
+ 
+ #ifdef HAVE_LEPTONICA_LIB
+-#include <leptonica.h>
++#include <leptonica/allheaders.h>
+ 
+ static void wlept_pix_from_bmp(PIX **pixptr,WILLUSBITMAP *bmp);
+ static void wlept_bmp_from_pix(WILLUSBITMAP *bmp,PIX *pix);
+@@ -135,7 +135,7 @@ pixWrite("pixb.png",pixb,IFF_PNG);
+     dew1=dewarpCreate(pixb,1);
+     pixDestroy(&pixb);
+     dewarpaInsertDewarp(dewa,dew1);
+-    dewarpBuildPageModel_ex(dew1,debug,fit_order);
++    dewarpBuildPageModel(dew1,debug);
+     if (bmp1!=NULL)
+         {
+         PIX *pix2,*pix2d;
+
+diff --git willuslib/wmupdf.c willuslib/wmupdf.c
+index 81627efd4c..fcab84c1db 100644
+--- willuslib/wmupdf.c
++++ willuslib/wmupdf.c
+@@ -189,8 +189,8 @@ int wmupdf_remake_pdf(char *infile,char *outfile,WPDFPAGEINFO *pageinfo,int use_
+     pdf_write_opts.do_compress=1;
+     pdf_write_opts.do_linear=0;
+     pdf_write_opts.do_garbage=1; /* 2 and 3 don't work for this. */
+-    pdf_write_opts.continue_on_error=0;
+-    pdf_write_opts.errors=NULL;
++    //pdf_write_opts.continue_on_error=0;
++    //pdf_write_opts.errors=NULL;
+     write_failed=0;
+     wpdfpageinfo_sort(pageinfo);
+     xref=NULL;
diff --git a/srcpkgs/k2pdfopt/patches/03-willuslib-ocrtess.c-tesscapi-fix.patch b/srcpkgs/k2pdfopt/patches/03-willuslib-ocrtess.c-tesscapi-fix.patch
new file mode 100644
index 00000000000..adc76c83866
--- /dev/null
+++ b/srcpkgs/k2pdfopt/patches/03-willuslib-ocrtess.c-tesscapi-fix.patch
@@ -0,0 +1,262 @@
+diff -r -u0 willuslib/ocrtess.c willuslib/ocrtess.c
+--- willuslib/ocrtess.c	2018-12-31 19:59:58.000000000 +0100
++++ willuslib/ocrtess.c	2019-07-27 18:47:06.706765733 +0200
+@@ -29,0 +30,258 @@
++
++
++/*
++** ocr_type=0:  OEM_DEFAULT
++** ocr_type=1:  OEM_TESSERACT_ONLY
++** ocr_type=2:  OEM_LSTM_ONLY
++** ocr_type=3:  OEM_TESSERACT_LSTM_COMBINED
++*/
++void *tess_capi_init(char *datapath,char *language,int ocr_type,FILE *out,
++                     char *initstr,int maxlen,int *status)
++
++    {
++    char original_locale[256];
++    TessBaseAPI *api = TessBaseAPICreate();
++
++    /* willus mod, 11-24-16 */
++    /* Tesseract needs "C" locale to correctly parse all data .traineddata files. */
++
++    strncpy(original_locale,setlocale(LC_ALL,NULL),255);
++    original_locale[255]='\0';
++    setlocale(LC_ALL,"C");
++
++    // Make the order of args a bit more forgiving than it used to be.
++    const char* lang = "eng";
++    TessPageSegMode pagesegmode = PSM_SINGLE_BLOCK;
++    if (language!=NULL && language[0]!='\0')
++        lang = language;
++ 
++/*
++v4.00 loads either TESSERACT enginer, LSTM engine, or both.  No CUBE.
++*/
++    ocr_type=0; /* Ignore specified and use default */
++    TessBaseAPISetOutputName(api, NULL);
++    (*status)=TessBaseAPIInit2(api, datapath,lang,
++              ocr_type==0 ? OEM_DEFAULT :
++                (ocr_type==1 ? OEM_TESSERACT_ONLY :
++                   (ocr_type==2 ? OEM_LSTM_ONLY :
++                                  (OEM_TESSERACT_LSTM_COMBINED))));
++    if ((*status)!=0)
++        {
++        /* willus mod, 11-24-16 */
++        setlocale(LC_ALL,original_locale);
++        TessBaseAPIEnd(api);
++        TessBaseAPIDelete(api);
++        return(NULL);
++        }
++    /*
++    api.Init("tesscapi",lang,tesseract::OEM_DEFAULT,
++           &(argv[arg]), argc - arg, NULL, NULL, false);
++    */
++    // We have 2 possible sources of pagesegmode: a config file and
++    // the command line. For backwards compatability reasons, the
++    // default in tesseract is tesseract::PSM_SINGLE_BLOCK, but the
++    // default for this program is tesseract::PSM_AUTO. We will let
++    // the config file take priority, so the command-line default
++    // can take priority over the tesseract default, so we use the
++    // value from the command line only if the retrieved mode
++    // is still tesseract::PSM_SINGLE_BLOCK, indicating no change
++    // in any config file. Therefore the only way to force
++    // tesseract::PSM_SINGLE_BLOCK is from the command line.
++    // It would be simpler if we could set the value before Init,
++    // but that doesn't work.
++    if (TessBaseAPIGetPageSegMode(api) == PSM_SINGLE_BLOCK)
++        TessBaseAPISetPageSegMode(api, pagesegmode);
++
++    /*
++    ** Initialization message
++    */
++    {
++    char istr[1024];
++
++// printf("tessedit_ocr_engine_mode = %d\n",tessedit_ocr_engine_mode);
++    sprintf(istr,"%s",TessVersion());
++    sprintf(&istr[strlen(istr)],"\n    Tesseract data folder = '%s'",datapath==NULL?getenv("TESSDATA_PREFIX"):datapath);
++    strcat(istr,"\n    Tesseract languages: ");
++    char** languages = TessBaseAPIGetAvailableLanguagesAsVector(api);
++/*
++printf("OEM=%d\n",api->oem());
++printf("Langs='%s'\n",api->GetInitLanguagesAsString());
++printf("AnyTessLang()=%d\n",(int)api->tesseract()->AnyTessLang());
++printf("AnyLSTMLang()=%d\n",(int)api->tesseract()->AnyLSTMLang());
++printf("num_sub_langs()=%d\n",api->tesseract()->num_sub_langs());
++printf("languages.size()=%d\n",(int)languages.size());
++*/
++    char* l = languages;
++    int eng = 0;
++    TessBaseAPI *lang1; 
++    while (l != NULL)
++        {
++            eng=(int)TessBaseAPIOem(api);
++            sprintf(&istr[strlen(istr)],"%s%s [%s]",l==languages?"":", ",l,
++                    eng==2?"LSTM+Tess":(eng==1?"LSTM":"Tess"));
++            l++;
++        }
++    
++    TessDeleteTextArray(languages);
++
++    /*
++    if (ocr_type==0 || ocr_type==3)
++        sprintf(&istr[strlen(istr)],"[LSTM+] (lang=");
++    else if (ocr_type==2)
++        sprintf(&istr[strlen(istr)],"[LSTM] (lang=");
++    strncpy(&istr[strlen(istr)],language,253-strlen(istr));
++    istr[253]='\0';
++    strcat(istr,")");
++    */
++    if (out!=NULL)
++        fprintf(out,"%s\n",istr);
++    if (initstr!=NULL)
++        {
++        strncpy(initstr,istr,maxlen-1);
++        initstr[maxlen-1]='\0';
++        }
++    }
++
++
++    /* Turn off LSTM debugging output */
++    TessBaseAPISetVariable(api,"lstm_debug_level","0");
++#if (WILLUSDEBUG & 1)
++    TessBaseAPISetVariable(api,"lstm_debug_level","9");
++    TessBaseAPISetVariable(api,"paragraph_debug_level","9");
++    TessBaseAPISetVariable(api,"tessdata_manager_debug_level","9");
++    TessBaseAPISetVariable(api,"tosp_debug_level","9");
++    TessBaseAPISetVariable(api,"wordrec_debug_level","9");
++    TessBaseAPISetVariable(api,"segsearch_debug_level","9");
++#endif
++    /* willus mod, 11-24-16 */
++    setlocale(LC_ALL,original_locale);
++    return((void *)api);
++    }
++
++
++int tess_capi_get_ocr(void *vapi,PIX *pix,char *outstr,int maxlen,int segmode,FILE *out)
++
++    {
++    TessBaseAPI *api;
++    static int old_segmode=-1;
++
++    api=(TessBaseAPI *)vapi;
++    if (old_segmode != segmode)
++        {
++        old_segmode=segmode;
++        TessBaseAPISetPageSegMode(api, (TessPageSegMode)segmode);
++        }
++    if (!TessBaseAPIProcessPage(api,pix,0,NULL,NULL,0,NULL))
++        {
++        /* pixDestroy(&pix); */
++        if (out!=NULL)
++            fprintf(out,"tesscapi:  Error during bitmap processing.\n");
++        TessBaseAPIClear(api);
++        return(-1);
++        }
++    char* text = TessBaseAPIGetUTF8Text(api);
++    strncpy(outstr,text,maxlen-1);
++    outstr[maxlen-1]='\0';
++    TessDeleteText(text);
++    TessBaseAPIClear(api);
++    return(0);
++    }
++
++
++int tess_capi_get_ocr_multiword(void *vapi,PIX *pix,int segmode,
++                                int **left,int **top,int **right,int **bottom,
++                                int **ybase,char **text,int *nw,
++                                FILE *out)
++
++    {
++    TessBaseAPI *api;
++    static int old_segmode=-1;
++
++    api=(TessBaseAPI *)vapi;
++    if (old_segmode != segmode)
++        {
++        old_segmode=segmode;
++        TessBaseAPISetPageSegMode(api, (TessPageSegMode)segmode);
++        }
++    if (!TessBaseAPIProcessPage(api,pix,0,NULL,NULL,0,NULL))
++        {
++        if (out!=NULL)
++            fprintf(out,"tesscapi:  Error during bitmap processing.\n");
++        TessBaseAPIClear(api);
++        (*nw)=0;
++        return(-1);
++        }
++    
++    //(*nw)=api->GetOCRWords(left,top,right,bottom,ybase,text);
++    
++    int iword,nwords,totlen,it8;
++    int *x0,*y0,*x1,*y1,*ybaseline;
++    char *tutf8;
++
++    TessResultIterator *res_it = TessBaseAPIGetIterator(api);
++    /* Count words */
++    iword=0;
++    totlen=0;
++    while(TessResultIteratorNext(res_it, RIL_BLOCK))
++        {
++        if(!TessResultIteratorNext(res_it, RIL_WORD))
++            {
++            continue;
++            }
++        iword++;
++        char* textstr = TessResultIteratorGetUTF8Text(res_it, RIL_WORD);
++        totlen+=strlen(textstr)+1;
++        }
++    nwords = iword;
++    
++    x0=(*left)=(int *)malloc(sizeof(int)*5*nwords);
++    y0=(*top)=&x0[nwords];
++    x1=(*right)=&y0[nwords];
++    y1=(*bottom)=&x1[nwords];
++    ybaseline=(*ybase)=&y1[nwords];
++    tutf8=(*text)=(char *)malloc(totlen);
++    iword=0;
++    it8=0;
++    TessPageIteratorBegin( (TessPageIterator *) res_it);
++    while (TessResultIteratorNext(res_it, RIL_BLOCK))
++        {
++        if (!TessResultIteratorNext(res_it, RIL_WORD))
++            {
++            continue;
++            }
++        char* textstr = TessResultIteratorGetUTF8Text(res_it, RIL_WORD);
++        strcpy(&tutf8[it8],textstr);
++        it8 += strlen(&tutf8[it8])+1;
++        
++        int bbleft, bbtop, bbright, bbbottom;
++        int u1,v1,u2,v2;
++        TessPageIteratorBoundingBox( (TessPageIterator *) res_it, RIL_WORD, &bbleft, &bbtop, &bbright, &bbbottom);
++        TessPageIteratorBaseline( (TessPageIterator *) res_it, RIL_WORD, &u1, &v1, &u2, &v2);
++        x0[iword]=bbleft;
++        x1[iword]=bbright;
++        y0[iword]=bbtop;
++        y1[iword]=bbbottom;
++        ybaseline[iword]=(v1+v2)/2;
++        iword++;
++        }
++        
++    TessResultIteratorDelete(res_it);
++    
++    (*nw) = iword;
++    
++    TessBaseAPIClear(api);
++    return(0);
++    }
++
++
++void tess_capi_end(void *vapi)
++
++    {
++    TessBaseAPI *api;
++
++    if (vapi==NULL)
++        return;
++    api=(TessBaseAPI *)vapi;
++    TessBaseAPIEnd(api);
++    TessBaseAPIDelete(api);
++    }
diff --git a/srcpkgs/k2pdfopt/patches/04-willuslib-wmupdfinfo.c-mupdf-fix.patch b/srcpkgs/k2pdfopt/patches/04-willuslib-wmupdfinfo.c-mupdf-fix.patch
new file mode 100644
index 00000000000..1b3bf4d057a
--- /dev/null
+++ b/srcpkgs/k2pdfopt/patches/04-willuslib-wmupdfinfo.c-mupdf-fix.patch
@@ -0,0 +1,26 @@
+diff -r -w -u0 willuslib/wmupdfinfo.c willuslib/wmupdfinfo.c
+--- willuslib/wmupdfinfo.c	2018-11-21 10:05:22.000000000 +0100
++++ willuslib/wmupdfinfo.c	2019-07-27 19:56:23.418595275 +0200
+@@ -217 +217 @@
+-		pdf_print_obj(ctx, out, pdf_resolve_indirect(ctx, obj), 1);
++		pdf_print_obj(ctx, out, pdf_resolve_indirect(ctx, obj), 1, 1);
+@@ -224 +224 @@
+-		pdf_print_obj(ctx, out, pdf_resolve_indirect(ctx, obj), 1);
++		pdf_print_obj(ctx, out, pdf_resolve_indirect(ctx, obj), 1, 1);
+@@ -240 +240 @@
+-        n=pdf_sprint_obj(ctx,NULL,0,robj,1);
++        char* f = pdf_sprint_obj(ctx,NULL,0,&n,robj,1,1);
+@@ -245 +245 @@
+-		    pdf_print_obj(ctx,out,robj,1);
++		    pdf_print_obj(ctx,out,robj,1,1);
+@@ -249 +249,2 @@
+-            pdf_sprint_obj(ctx,buf,n+2,robj,1);
++            int len = 0;
++            char* d = pdf_sprint_obj(ctx,buf,n+2,&len,robj,1,1);
+@@ -256,0 +258 @@
++            fz_free(ctx, d);
+@@ -257,0 +260 @@
++        fz_free(ctx, f);
+@@ -278 +281 @@
+-		pdf_print_obj(ctx,out, pdf_resolve_indirect(ctx,obj), 1);
++		pdf_print_obj(ctx,out, pdf_resolve_indirect(ctx,obj), 1, 1);
diff --git a/srcpkgs/k2pdfopt/patches/05-willuslib-bmpmupdf.c-fix.patch b/srcpkgs/k2pdfopt/patches/05-willuslib-bmpmupdf.c-fix.patch
new file mode 100644
index 00000000000..7ed4528e8fa
--- /dev/null
+++ b/srcpkgs/k2pdfopt/patches/05-willuslib-bmpmupdf.c-fix.patch
@@ -0,0 +1,8 @@
+diff -r -w -u0 willuslib/bmpmupdf.c willuslib/bmpmupdf.c
+--- willuslib/bmpmupdf.c	2018-11-20 21:13:12.000000000 +0100
++++ willuslib/bmpmupdf.c	2019-07-27 20:12:37.386555334 +0200
+@@ -28 +28,3 @@
+-void pdf_install_load_system_font_funcs(fz_context *ctx);
++void pdf_install_load_system_font_funcs(fz_context *ctx)
++{
++}
diff --git a/srcpkgs/k2pdfopt/template b/srcpkgs/k2pdfopt/template
new file mode 100644
index 00000000000..9794055f210
--- /dev/null
+++ b/srcpkgs/k2pdfopt/template
@@ -0,0 +1,17 @@
+# Template file for 'k2pdfopt'
+pkgname=k2pdfopt
+version=2.51
+revision=1
+wrksrc="${pkgname}_v${version}"
+build_style=cmake
+hostmakedepends="pkgconf unzip"
+makedepends="zlib-devel libpng-devel libjpeg-turbo-devel jasper-devel
+ freetype-devel libopenjpeg2-devel jbig2dec-devel djvulibre-devel
+ tesseract-ocr-devel leptonica-devel gsl-devel mupdf-devel harfbuzz-devel"
+depends="ghostscript"
+short_desc="Optimize PDF/DJVU files for mobile e-readers and smartphones"
+maintainer="John Eira <john.eira@web.de>"
+license="GPL-3.0-or-later"
+homepage="https://willus.com/k2pdfopt/"
+distfiles="http://willus.com/k2pdfopt/src/k2pdfopt_v${version}_src.zip"
+checksum="3e6e4d7aac9c9bed4c7854888a6a91213be10121be76e17f83e080e829ac5fde"

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2019-07-27 18:53 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-07-27 18:53 [PR PATCH] New package: k2pdfopt voidlinux-github

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).