gnu: libpaper: Update to 1.2.2.

* gnu/packages/ghostscript.scm (libpaper): Update to 1.2.2.
[source](patches): Remove.
* gnu/packages/patches/libpaper-free-systempapername.patch,
gnu/packages/patches/libpaper-free-xdg-config-home.patch,
gnu/packages/patches/libpaper-invalid-paperspecs.patch: Delete files.
* gnu/local.mk (dist_patch_DATA): Adjust accordingly.
This commit is contained in:
Marius Bakke 2022-07-20 02:41:31 +02:00
parent c84fa7a253
commit 57d5e06ef6
No known key found for this signature in database
GPG key ID: A2A06DF2A33A54FA
5 changed files with 2 additions and 180 deletions

View file

@ -1405,9 +1405,6 @@ dist_patch_DATA = \
%D%/packages/patches/libmpeg2-global-symbol-test.patch \
%D%/packages/patches/libmygpo-qt-fix-qt-5.11.patch \
%D%/packages/patches/libmygpo-qt-missing-qt5-modules.patch \
%D%/packages/patches/libpaper-free-systempapername.patch \
%D%/packages/patches/libpaper-free-xdg-config-home.patch \
%D%/packages/patches/libpaper-invalid-paperspecs.patch \
%D%/packages/patches/libqalculate-3.8.0-libcurl-ssl-fix.patch \
%D%/packages/patches/libquicktime-ffmpeg.patch \
%D%/packages/patches/librecad-support-for-boost-1.76.patch \

View file

@ -77,18 +77,15 @@ (define-public lcms
(define-public libpaper
(package
(name "libpaper")
(version "1.2.1")
(version "1.2.2")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/rrthomas/libpaper/releases"
"/download/v" version "/libpaper-"
version ".tar.gz"))
(patches (search-patches "libpaper-free-xdg-config-home.patch"
"libpaper-free-systempapername.patch"
"libpaper-invalid-paperspecs.patch"))
(sha256
(base32
"18m1yas7lihlyaxr0vpgy65bq9ri429wrm4sfxyhd5gj88gn16lr"))))
"0lixfgmdbna6gflsgp05d09zygrqi1ip5hsg0p33lh7ndjf6v5ma"))))
(build-system gnu-build-system)
(native-inputs
(list help2man))

View file

@ -1,38 +0,0 @@
Ensure backwards compatibility with libpaper 1.1 by returning a value that
must be free()'d.
Taken from upstream:
https://github.com/rrthomas/libpaper/commit/9a4f7cdd6b749fd9d08ec92b6e3b434f7d322b6d
diff --git a/lib/libpaper.c.in.in b/lib/libpaper.c.in.in
index aa86d06..19e3332 100644
--- a/lib/libpaper.c.in.in
+++ b/lib/libpaper.c.in.in
@@ -316,9 +316,9 @@ const char *defaultpapername(void) {
return paperstr;
}
-/* Alias for defaultpapername. */
+/* Alias for defaultpapername; its return value must be freed! */
const char *systempapername(void) {
- return defaultpapername();
+ return strdup(defaultpapername());
}
/* Get the default paper size. */
diff --git a/lib/paper.h b/lib/paper.h
index c940bed..fe5d4be 100644
--- a/lib/paper.h
+++ b/lib/paper.h
@@ -123,8 +123,8 @@ const struct paper *defaultpaper(void);
const char *defaultpapername(void);
/*
- * Deprecated, only for backwards compatibility; an alias for
- * defaultpapername().
+ * Deprecated, only for backwards compatibility; does the same as
+ * defaultpapername(), but returns a value that must be freed.
*/
const char *systempapername(void);

View file

@ -1,37 +0,0 @@
Free the xdg_config_home_variable only when needed.
Taken from upstream:
https://github.com/rrthomas/libpaper/commit/29e3e3800cfea738f12a9760290b92d5c199092b
diff --git a/lib/libpaper.c.in.in b/lib/libpaper.c.in.in
index f7af1d7..aa86d06 100644
--- a/lib/libpaper.c.in.in
+++ b/lib/libpaper.c.in.in
@@ -295,7 +295,6 @@ const char *defaultpapername(void) {
const char *paperstr = getenv("PAPERSIZE");
if (paperstr == NULL && xdg_config_home != NULL) {
- free_xdg_config_home = true;
char *papersize = mfile_name_concat(xdg_config_home, PAPERSIZE_FILENAME, NULL);
if (papersize != NULL) {
paperstr = papernamefile(papersize);
@@ -374,6 +373,7 @@ int paperinit(void)
xdg_config_home = getenv("XDG_CONFIG_HOME");
if (xdg_config_home == NULL) {
char *home = getenv("HOME");
+ free_xdg_config_home = true;
xdg_config_home = mfile_name_concat(home, ".config", NULL);
if (xdg_config_home == NULL)
return PAPER_NOMEM;
@@ -409,8 +409,10 @@ int paperdone(void)
{
if (initialized) {
free(sysconfdir);
+ sysconfdir = NULL;
if (free_xdg_config_home)
free(xdg_config_home);
+ xdg_config_home = NULL;
initialized = false;
}
return PAPER_OK;

View file

@ -1,97 +0,0 @@
Handle invalid paper specifications.
Taken from upstream:
https://github.com/rrthomas/libpaper/commit/24bcaa54e2813683404e3e13a4fedd47f3e4d614
diff --git a/lib/libpaper.c.in.in b/lib/libpaper.c.in.in
index 19e3332..c68a936 100644
--- a/lib/libpaper.c.in.in
+++ b/lib/libpaper.c.in.in
@@ -164,10 +164,8 @@ const struct paper *papernext(const struct paper *paper)
}
/* Constructor. */
-static int readspecs(struct paper **papers_list, const char *specsfile, struct paper **last) {
- paper_lineno = 0;
- free(paper_specsfile);
- paper_specsfile = strdup(specsfile);
+static int readspecs(struct paper **papers_list, const char *specsfile, struct paper **last, size_t *lineno) {
+ *lineno = 0;
char *old_locale = setlocale(LC_ALL, NULL);
if (old_locale != NULL)
old_locale = strdup(old_locale);
@@ -178,7 +176,7 @@ static int readspecs(struct paper **papers_list, const char *specsfile, struct p
struct paper *prev = *papers_list, *p;
size_t n;
char *l;
- for (paper_lineno = 1, l = NULL; getline(&l, &n, ps) > 0; prev = p, paper_lineno++) {
+ for (*lineno = 1, l = NULL; getline(&l, &n, ps) > 0; prev = p, (*lineno)++) {
char *saveptr;
char *name = gettok(l, &saveptr);
char *wstr = gettok(NULL, &saveptr), *hstr = gettok(NULL, &saveptr);
@@ -350,6 +348,8 @@ int paperinit(void)
return PAPER_OK;
initialized = true;
+ int ret = PAPER_OK;
+
/* Read system paperspecs. */
struct paper *system_papers = NULL;
sysconfdir = alloc_relocate("@sysconfdir@");
@@ -357,12 +357,9 @@ int paperinit(void)
char *system_paperspecs = mfile_name_concat(sysconfdir, PAPERSPECS_FILENAME, NULL);
if (system_paperspecs == NULL)
return PAPER_NOMEM;
- int ret = readspecs(&system_papers, system_paperspecs, NULL);
- free(system_paperspecs);
- if (ret != PAPER_OK) {
- paperdone();
- return ret;
- }
+ ret = readspecs(&system_papers, system_paperspecs, NULL, &paper_lineno);
+ free(paper_specsfile);
+ paper_specsfile = system_paperspecs;
}
/* Set default paper to first system paper, if any. */
@@ -381,11 +378,15 @@ int paperinit(void)
char *user_paperspecs = mfile_name_concat(xdg_config_home, PAPERSPECS_FILENAME, NULL);
struct paper *last_paper = NULL;
if (user_paperspecs != NULL) {
- int ret = readspecs(&papers, user_paperspecs, &last_paper);
- free(user_paperspecs);
- if (ret != PAPER_OK) {
- paperdone();
- return ret;
+ size_t user_lineno;
+ int user_ret = readspecs(&papers, user_paperspecs, &last_paper, &user_lineno);
+ if (ret == PAPER_OK) {
+ ret = user_ret;
+ free(user_paperspecs);
+ } else if (paper_lineno == 0) {
+ free(paper_specsfile);
+ paper_specsfile = user_paperspecs;
+ paper_lineno = user_lineno;
}
}
@@ -395,13 +396,16 @@ int paperinit(void)
default_paper = papers;
/* Concatenate system papers to user papers. */
- last_paper->next = system_papers;
+ if (last_paper != NULL)
+ last_paper->next = system_papers;
+ else
+ last_paper = system_papers;
}
if (papers == NULL) /* System papers are all we have. */
papers = system_papers;
- return PAPER_OK;
+ return ret;
}
/* Shut down the library. */