~ruther/guix-local

f9d368f345a5bc6d42686e2e7a23c4c430b9f060 — Maxim Cournoyer 9 months ago 4b6110a
gnu: ccextractor: Update to 0.94-0.81fdecd.

* gnu/packages/gstreamer.scm (ccextractor): Update to 0.94-0.81fdecd.
[source]: Delete patches.
[#:configure-flags]: Add LDFLAGS.
[native-inputs]: Replace autoconf with autoconf-2.72, leptonica-1.80
with leptonica and tesseract-ocr-4 with tesseract-ocr.
* gnu/packages/patches/ccextractor-add-missing-header.patch
* gnu/packages/patches/ccextractor-autoconf-tesseract.patch
* gnu/packages/patches/ccextractor-fix-ocr.patch: Delete files
* gnu/local.mk (dist_patch_DATA): De-register them.

Change-Id: Ice1336754bc5ddf77fee7c03a1336cd1c3543d4c
5 files changed, 51 insertions(+), 151 deletions(-)

M gnu/local.mk
M gnu/packages/gstreamer.scm
D gnu/packages/patches/ccextractor-add-missing-header.patch
D gnu/packages/patches/ccextractor-autoconf-tesseract.patch
D gnu/packages/patches/ccextractor-fix-ocr.patch
M gnu/local.mk => gnu/local.mk +0 -3
@@ 1094,9 1094,6 @@ dist_patch_DATA =						\
  %D%/packages/patches/capnproto-fix-test.patch		\
  %D%/packages/patches/capstone-fix-python-constants.patch	\
  %D%/packages/patches/catdoc-CVE-2017-11110.patch		\
  %D%/packages/patches/ccextractor-add-missing-header.patch	\
  %D%/packages/patches/ccextractor-autoconf-tesseract.patch	\
  %D%/packages/patches/ccextractor-fix-ocr.patch		\
  %D%/packages/patches/chez-scheme-bin-sh.patch			\
  %D%/packages/patches/circos-remove-findbin.patch		\
  %D%/packages/patches/cdparanoia-fpic.patch			\

M gnu/packages/gstreamer.scm => gnu/packages/gstreamer.scm +51 -49
@@ 10,7 10,7 @@
;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2020 Liliana Marie Prikler <liliana.prikler@gmail.com>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2023, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2023-2025 Maxim Cournoyer <maxim@guixotic.coop>
;;; Copyright © 2024 Remco van 't Veer <remco@remworks.net>
;;; Copyright © 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
;;;


@@ 172,56 172,58 @@ module for the DMA capture of the video flow.")
    (license license:lgpl2.0+)))

(define-public ccextractor
  (package
    (name "ccextractor")
    (version "0.94")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/CCExtractor/ccextractor")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       ;; FIXME: Delete the 'src/thirdparty directory and unbundle the
       ;; libraries it contains, such as freetype, libpng, zlib, and others.
       (patches (search-patches "ccextractor-add-missing-header.patch"
                                "ccextractor-autoconf-tesseract.patch"
                                "ccextractor-fix-ocr.patch"))
       (sha256
        (base32 "1hrk4xlzkvk9pnv0yr4whcsh8h4fzk42mrf30dsr3xzh1lgpfslg"))))
    (build-system gnu-build-system)
    (arguments
     (list #:configure-flags
           #~(list "--enable-ffmpeg"
                   "--enable-ocr"
                   "--enable-hardsubx"
                   ;; Disable Rust support, as there's no rust source included
                   ;; and cargo wants to fetch the crates from the network
                   ;; (see:
                   ;; https://github.com/CCExtractor/ccextractor/issues/1502).
                   "--without-rust")
           #:phases #~(modify-phases %standard-phases
                        (add-after 'unpack 'chdir
                          (lambda _
                            (chdir "linux")))
                        (add-after 'chdir 'patch-pre-build.sh
                          (lambda _
                            (substitute* "pre-build.sh"
                              (("/usr/bin/env") (which "env")))))
                        (replace 'check
                          (lambda* (#:key tests? #:allow-other-keys)
                            (when tests?
                              ;; There is no test suite; simply run the binary
                              ;; to validate there are no obvious problems.
                              (invoke "./ccextractor" "--help")))))))
    (native-inputs (list autoconf automake pkg-config))
    (inputs (list ffmpeg-3.4 leptonica-1.80 tesseract-ocr-4))
    (synopsis "Closed Caption Extractor")
    (description "CCExtractor is a tool that analyzes video files and produces
  (let ((commit "81fdecd5af683ff25b953339fdb0d84e141d60c1")
        (revision "0"))
    (package
      (name "ccextractor")
      (version (git-version "0.94" revision commit))
      (source
       (origin
         (method git-fetch)
         (uri (git-reference
                (url "https://github.com/CCExtractor/ccextractor")
                (commit commit)))
         (file-name (git-file-name name version))
         ;; FIXME: Delete the 'src/thirdparty directory and unbundle the
         ;; libraries it contains, such as freetype, libpng, zlib, and others.
         (sha256
          (base32 "0rcig2zma4nrvlx90pkcy1spc1ha2ig0jixm2dnc0f04bzf2n00q"))))
      (build-system gnu-build-system)
      (arguments
       (list #:configure-flags
             #~(list "--enable-ffmpeg"
                     "--enable-ocr"
                     "--enable-hardsubx"
                     ;; Disable Rust support, as there's no rust source included
                     ;; and cargo wants to fetch the crates from the network
                     ;; (see:
                     ;; https://github.com/CCExtractor/ccextractor/issues/1502).
                     "--without-rust"
                     ;; Workaround the lack of a link directive to tesseract
                     ;; for the hardsubx module.
                     "LDFLAGS=-ltesseract")
             #:phases #~(modify-phases %standard-phases
                          (add-after 'unpack 'chdir
                            (lambda _
                              (chdir "linux")))
                          (add-after 'chdir 'patch-pre-build.sh
                            (lambda _
                              (substitute* "pre-build.sh"
                                (("/usr/bin/env") (which "env")))))
                          (replace 'check
                            (lambda* (#:key tests? #:allow-other-keys)
                              (when tests?
                                ;; There is no test suite; simply run the binary
                                ;; to validate there are no obvious problems.
                                (invoke "./ccextractor" "--help")))))))
      (native-inputs (list autoconf-2.72 automake pkg-config))
      (inputs (list ffmpeg gpac leptonica tesseract-ocr))
      (synopsis "Closed Caption Extractor")
      (description "CCExtractor is a tool that analyzes video files and produces
independent subtitle files from the closed captions data.  It is portable, small,
and very fast.")
    (home-page "https://www.ccextractor.org/")
    (license license:gpl2+)))
      (home-page "https://www.ccextractor.org/")
      (license license:gpl2+))))

(define-public libvisual
  (package

D gnu/packages/patches/ccextractor-add-missing-header.patch => gnu/packages/patches/ccextractor-add-missing-header.patch +0 -33
@@ 1,33 0,0 @@
Upstream status: https://github.com/CCExtractor/ccextractor/pull/1505

From 272e0e1410135c3a5de105cecce400c7b2a9ed5b Mon Sep 17 00:00:00 2001
From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Date: Fri, 17 Mar 2023 09:49:29 -0400
Subject: [PATCH] linux/Makefile.am: Add missing generated header.

This header is generated by the pre-build.sh script.  The compilation
fails if it is missing.

* linux/Makefile.am (ccextractor_SOURCES): Add
../src/lib_ccx/compile_info_real.h.
---
 linux/Makefile.am | 1 +
 1 file changed, 1 insertion(+)

diff --git a/linux/Makefile.am b/linux/Makefile.am
index fddc26a5..f83f1eff 100644
--- a/linux/Makefile.am
+++ b/linux/Makefile.am
@@ -118,6 +118,7 @@ ccextractor_SOURCES = \
 				../src/lib_ccx/bitstream.h \
 				../src/lib_ccx/ccx_common_option.c \
 				../src/lib_ccx/ccx_common_common.c \
+				../src/lib_ccx/compile_info_real.h \
 				../src/lib_ccx/utility.c \
 				../src/lib_ccx/activity.c \
 				../src/lib_ccx/asf_functions.c \

base-commit: cb496a711923c984251483776e652ca9c027513c
-- 
2.39.1


D gnu/packages/patches/ccextractor-autoconf-tesseract.patch => gnu/packages/patches/ccextractor-autoconf-tesseract.patch +0 -37
@@ 1,37 0,0 @@
Upstream status: https://github.com/CCExtractor/ccextractor/pull/1504

From f587050c2b5805ff5feb667736381dcc9991a5d3 Mon Sep 17 00:00:00 2001
From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Date: Fri, 17 Mar 2023 00:57:13 -0400
Subject: [PATCH] linux/configure.ac: Fix tesseract conditional problem.

For tesseract-ocr's stock pkg-config, it would produce an error due to
unquoted whitespace:

  $ test ! -z `pkg-config --libs-only-l --silence-errors tesseract`
  bash: test: syntax error: `-larchive' unexpected

* linux/configure.ac: Use a positive test, and double-quote the $() command
substitution.
---
 linux/configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/linux/configure.ac b/linux/configure.ac
index 45fc11f3..118ee7fa 100644
--- a/linux/configure.ac
+++ b/linux/configure.ac
@@ -149,7 +149,7 @@ AS_IF([ (test x$ocr = xtrue || test x$hardsubx = xtrue) && test ! $HAS_LEPT -gt
 AM_CONDITIONAL(HARDSUBX_IS_ENABLED, [ test x$hardsubx = xtrue ])
 AM_CONDITIONAL(OCR_IS_ENABLED, [ test x$ocr = xtrue || test x$hardsubx = xtrue ])
 AM_CONDITIONAL(FFMPEG_IS_ENABLED, [ test x$ffmpeg = xtrue ])
-AM_CONDITIONAL(TESSERACT_PRESENT, [ test ! -z  `pkg-config --libs-only-l --silence-errors tesseract` ])
+AM_CONDITIONAL(TESSERACT_PRESENT, [ test -n  "$(pkg-config --libs-only-l --silence-errors tesseract)" ])
 AM_CONDITIONAL(TESSERACT_PRESENT_RPI, [ test -d "/usr/include/tesseract" && test `ls -A /usr/include/tesseract | wc -l` -gt 0 ])
 AM_CONDITIONAL(SYS_IS_LINUX, [ test `uname -s` = "Linux"])
 AM_CONDITIONAL(SYS_IS_MAC, [ test `uname -s` = "Darwin"])

base-commit: cb496a711923c984251483776e652ca9c027513c
-- 
2.39.1


D gnu/packages/patches/ccextractor-fix-ocr.patch => gnu/packages/patches/ccextractor-fix-ocr.patch +0 -29
@@ 1,29 0,0 @@
Extracted from upstream commit 0264e7da2be67182deb031228eb07e6ed4943c81.

diff --git a/src/lib_ccx/ocr.c b/src/lib_ccx/ocr.c
index 31cc1c5c..73bd4818 100644
--- a/src/lib_ccx/ocr.c
+++ b/src/lib_ccx/ocr.c
@@ -331,6 +331,11 @@ char *ocr_bitmap(void *arg, png_color *palette, png_byte *alpha, unsigned char *
 	}
 
 	BOX *crop_points = ignore_alpha_at_edge(copy->alpha, copy->data, w, h, color_pix, &color_pix_out);
+
+	l_int32 x, y, _w, _h;
+
+	boxGetGeometry(crop_points, &x, &y, &_w, &_h);
+
 	// Converting image to grayscale for OCR to avoid issues with transparency
 	cpix_gs = pixConvertRGBToGray(cpix, 0.0, 0.0, 0.0);
 
@@ -426,8 +431,8 @@ char *ocr_bitmap(void *arg, png_color *palette, png_byte *alpha, unsigned char *
 				{
 					for (int j = x1; j <= x2; j++)
 					{
-						if (copy->data[(crop_points->y + i) * w + (crop_points->x + j)] != firstpixel)
-							histogram[copy->data[(crop_points->y + i) * w + (crop_points->x + j)]]++;
+						if (copy->data[(y + i) * w + (x + j)] != firstpixel)
+							histogram[copy->data[(y + i) * w + (x + j)]]++;
 					}
 				}
 				/* sorted in increasing order of intensity */