all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Liliana Marie Prikler <liliana.prikler@gmail.com>
To: 65438@debbugs.gnu.org
Subject: [bug#65438] [PATCH 4/4] gnu: Add go-github-com-wraparound-wrap.
Date: Mon, 21 Aug 2023 20:23:37 +0200	[thread overview]
Message-ID: <0bfd3ed2480566cfc7932898d480e8876b2fb1e4.1692642912.git.liliana.prikler@gmail.com> (raw)
In-Reply-To: <cover.1692642912.git.liliana.prikler@gmail.com>

* gnu/packages/patches/go-github-com-wraparound-wrap-free-fonts.patch: New
file.
* gnu/local.mk (dist_patch_DATA): Register it here.
* gnu/packages/golang.scm (go-github-com-wraparound-wrap): New variable.
---
 gnu/local.mk                                  |  1 +
 gnu/packages/golang.scm                       | 52 ++++++++++++
 ...ithub-com-wraparound-wrap-free-fonts.patch | 84 +++++++++++++++++++
 3 files changed, 137 insertions(+)
 create mode 100644 gnu/packages/patches/go-github-com-wraparound-wrap-free-fonts.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index e4f5b2078a..1f10dd7f20 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1314,6 +1314,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/go-github-com-golang-snappy-32bit-test.patch \
   %D%/packages/patches/go-github-com-urfave-cli-fix-tests.patch \
   %D%/packages/patches/go-github-com-urfave-cli-v2-fix-tests.patch \
+  %D%/packages/patches/go-github-com-wraparound-wrap-free-fonts.patch \
   %D%/packages/patches/go-skip-gc-test.patch			\
   %D%/packages/patches/gourmet-sqlalchemy-compat.patch		\
   %D%/packages/patches/gpaste-fix-paths.patch			\
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 1617182243..b6e25b5183 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -74,6 +74,7 @@ (define-module (gnu packages golang)
   #:use-module (gnu packages base)
   #:use-module ((gnu packages bootstrap) #:select (glibc-dynamic-linker))
   #:use-module (gnu packages check)
+  #:use-module (gnu packages fonts)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnupg)
@@ -2512,6 +2513,57 @@ (define-public go-github-com-signintech-gopdf
     (description "gopdf is a Go library for generating PDF documents.")
     (license license:expat)))
 
+(define-public go-github-com-wraparound-wrap
+  (package
+    (name "go-github-com-wraparound-wrap")
+    (version "0.3.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/Wraparound/wrap")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0scf7v83p40r9k7k5v41rwiy9yyanfv3jm6jxs9bspxpywgjrk77"))
+              (patches (search-patches
+                        "go-github-com-wraparound-wrap-free-fonts.patch"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "github.com/Wraparound/wrap/"
+      #:tests? #f                       ; no tests
+      #:phases
+      #~(modify-phases %standard-phases
+          (replace 'build
+            (lambda* (#:key import-path #:allow-other-keys)
+              (invoke "go" "install" "-v" "-x"
+                      "-ldflags=-s -w"
+                      (string-append import-path "cmd/wrap"))))
+          (add-after 'wrap 'wrap-fonts
+            (lambda* (#:key inputs outputs #:allow-other-keys)
+              (for-each
+               (lambda (program)
+                 (wrap-program program
+                   `("XDG_DATA_DIRS" suffix
+                     ,(map dirname
+                           (search-path-as-list '("share/fonts")
+                                                (map cdr inputs))))))
+               (find-files (string-append (assoc-ref outputs "out")
+                                          "/bin"))))))))
+    (propagated-inputs (list go-github-com-spf13-cobra
+                             go-github-com-signintech-gopdf
+                             go-github-com-flopp-go-findfont))
+    (inputs (list font-liberation font-gnu-freefont))
+    (home-page "https://github.com/Wraparound/wrap")
+    (synopsis "Format Fountain screenplays")
+    (description
+     "Wrap is a command line tool that is able to convert Fountain files into a
+correctly formatted screen- or stageplay as an HTML or a PDF.  It supports
+standard Fountain, but also has some custom syntax extensions such as
+translated keywords and acts.")
+    (license license:gpl3)))
+
 (define-public go-torproject-org-pluggable-transports-goptlib
   (package
     (name "go-torproject-org-pluggable-transports-goptlib")
diff --git a/gnu/packages/patches/go-github-com-wraparound-wrap-free-fonts.patch b/gnu/packages/patches/go-github-com-wraparound-wrap-free-fonts.patch
new file mode 100644
index 0000000000..91b187a2d3
--- /dev/null
+++ b/gnu/packages/patches/go-github-com-wraparound-wrap-free-fonts.patch
@@ -0,0 +1,84 @@
+Index: wrap-source/pkg/pdf/fonts.go
+===================================================================
+--- wrap-source.orig/pkg/pdf/fonts.go
++++ wrap-source/pkg/pdf/fonts.go
+@@ -36,15 +36,15 @@ var (
+ 		BoldItalic:     []string{"Courier Prime Bold Italic.ttf"},
+ 	}
+ 
+-	CourierNew = Font{
+-		RomanName:      "Courier New",
+-		Roman:          []string{"Courier New.ttf", "cour.ttf"},
+-		BoldName:       "Courier New Bold",
+-		Bold:           []string{"Courier New Bold.ttf", "courbd.ttf"},
+-		ItalicName:     "Courier New Italic",
+-		Italic:         []string{"Courier New Italic.ttf", "couri.ttf"},
+-		BoldItalicName: "Courier New Bold Italic",
+-		BoldItalic:     []string{"Courier New Bold Italic.ttf", "courbi.ttf"},
++	LiberationMono = Font{
++		RomanName:      "Liberation Mono Regular",
++		Roman:          []string{"LiberationMono-Regular.ttf"},
++		BoldName:       "Liberation Mono Bold",
++		Bold:           []string{"LiberationMono-Bold.ttf"},
++		ItalicName:     "Liberation Mono Italic",
++		Italic:         []string{"LiberationMono-Italic.ttf"},
++		BoldItalicName: "Liberation Mono Bold Italic",
++		BoldItalic:     []string{"LiberationMono-BoldItalic.ttf"},
+ 	}
+ 
+ 	FreeMono = Font{
+@@ -151,9 +151,8 @@ func loadFonts() {
+ 		err := loadFont(CourierPrime)
+ 
+ 		if err != nil {
+-			// Courier New should be available on macOS and Windows
+ 			fmt.Fprintln(os.Stderr, "Warning: "+err.Error())
+-			err = loadFont(CourierNew)
++			err = loadFont(LiberationMono)
+ 
+ 			if err != nil {
+ 				// FreeMono as a final attempt
+Index: wrap-source/pkg/cli/pdf.go
+===================================================================
+--- wrap-source.orig/pkg/cli/pdf.go
++++ wrap-source/pkg/cli/pdf.go
+@@ -22,7 +22,7 @@ var pdfCmd = &cobra.Command{
+ var (
+ 	pdfProductionFlag bool
+ 	useCourierPrime   bool
+-	useCourierNew     bool
++	useLiberationMono     bool
+ 	useFreeMono       bool
+ 	pageSize          string
+ 	font              string
+@@ -31,7 +31,7 @@ var (
+ func init() {
+ 	pdfCmd.Flags().BoolVarP(&pdfProductionFlag, "production", "p", false, "add scene numbers and other production text")
+ 	pdfCmd.Flags().BoolVar(&useCourierPrime, "use-courier-prime", false, "force the usage of Courier Prime")
+-	pdfCmd.Flags().BoolVar(&useCourierNew, "use-courier-new", false, "force the usage of Courier New")
++	pdfCmd.Flags().BoolVar(&useLiberationMono, "use-courier-new", false, "force the usage of Liberation Mono")
+ 	pdfCmd.Flags().BoolVar(&useFreeMono, "use-freemono", false, "force the usage of GNU FreeMono")
+ 	pdfCmd.Flags().StringVar(&pageSize, "page-size", "", "choose page size (letter or a4)")
+ 	pdfCmd.RegisterFlagCompletionFunc("page-size", func(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
+@@ -46,8 +46,8 @@ func pdfRun(cmd *cobra.Command, args []s
+ 	// Evaluate font selection
+ 	pdf.AutoFontSelection = false
+ 
+-	if (font != "" && atLeastOne(useCourierPrime, useCourierNew, useFreeMono)) ||
+-		moreThanOne(useCourierPrime, useCourierNew, useFreeMono) {
++	if (font != "" && atLeastOne(useCourierPrime, useLiberationMono, useFreeMono)) ||
++		moreThanOne(useCourierPrime, useLiberationMono, useFreeMono) {
+ 		// The fonts are mutualy exclusive so throw an error
+ 		handle(errors.New("tried to force multiple fonts at the same time"))
+ 	}
+@@ -77,8 +77,8 @@ func pdfRun(cmd *cobra.Command, args []s
+ 	} else if useCourierPrime {
+ 		pdf.SelectedFont = pdf.CourierPrime
+ 
+-	} else if useCourierNew {
+-		pdf.SelectedFont = pdf.CourierNew
++	} else if useLiberationMono {
++		pdf.SelectedFont = pdf.LiberationMono
+ 
+ 	} else if useFreeMono {
+ 		pdf.SelectedFont = pdf.FreeMono
-- 
2.41.0





  parent reply	other threads:[~2023-08-21 19:37 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-21 18:35 [bug#65438] [PATCH 0/4] Add Add go-github-com-wraparound-wrap Liliana Marie Prikler
2023-08-21 18:20 ` [bug#65438] [PATCH 1/4] gnu: Add go-github-com-flopp-go-findfont Liliana Marie Prikler
2023-08-21 18:23 ` [bug#65438] [PATCH 2/4] gnu: Add go-github-com-phpdave11-gofpdi Liliana Marie Prikler
2023-08-21 18:23 ` [bug#65438] [PATCH 3/4] gnu: Add go-github-com-signintech-gopdf Liliana Marie Prikler
2023-08-21 18:23 ` Liliana Marie Prikler [this message]
2023-09-02  5:15   ` bug#65438: [PATCH 4/4] gnu: Add go-github-com-wraparound-wrap Liliana Marie Prikler

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=0bfd3ed2480566cfc7932898d480e8876b2fb1e4.1692642912.git.liliana.prikler@gmail.com \
    --to=liliana.prikler@gmail.com \
    --cc=65438@debbugs.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.