Compare commits

..

No commits in common. "c8" and "c9s" have entirely different histories.
c8 ... c9s

6 changed files with 357 additions and 87 deletions

7
.gitignore vendored
View File

@ -1 +1,6 @@
SOURCES/psutils-1.23.tar.xz
psutils-p17-clean.tar.gz
/psutils-1.21.tar.xz
/psutils-1.23.tar.xz
/psutils-2.03.tar.gz
/psutils-2.04.tar.gz
/psutils-2.06.tar.gz

View File

@ -1 +0,0 @@
262d61ccfed221f9b2c5347855851c51a3df744d SOURCES/psutils-1.23.tar.xz

View File

@ -1,40 +0,0 @@
diff -up psutils-1.23/configure.paperconf psutils-1.23/configure
--- psutils-1.23/configure.paperconf 2014-01-22 10:31:58.000000000 +0100
+++ psutils-1.23/configure 2015-05-20 14:25:40.636115433 +0200
@@ -15700,7 +15700,7 @@ fi
if test -z "$PAPER"; then
- PAPER=paper
+ PAPER=paperconf
fi
diff -up psutils-1.23/psutil.c.paperconf psutils-1.23/psutil.c
--- psutils-1.23/psutil.c.paperconf 2014-01-16 11:20:54.000000000 +0100
+++ psutils-1.23/psutil.c 2015-05-29 13:24:12.834350330 +0200
@@ -88,13 +87,21 @@ int paper_size(const char *paper_name, d
int res = 0;
if (paper_name == NULL) /* Use default paper name */
paper_name = pgetline(PAPER);
- if (paper_name && (cmd = xasprintf(PAPER " --unit=pt --size %s", paper_name)) && (l = pgetline(cmd)))
- res = sscanf(l, "%lg %lg", width, height);
+ if (paper_name && (cmd = xasprintf(PAPER " -s %s", paper_name)) && (l = pgetline(cmd)))
+ {
+ for (int i = 0; i < strlen(l); i++)
+ {
+ if (l[i] == ',')
+ {
+ l[i] = '.';
+ }
+ }
+ res = sscanf(l, "%lg %lg", width, height);
+ }
free(l);
free(cmd);
return res == 2;
}
-
/* Make a file seekable, using temporary files if necessary */
FILE *seekable(FILE *fp)
{

202
psutils-p17-paper.patch Normal file
View File

@ -0,0 +1,202 @@
--- psutils/pstops.1.paper Tue Mar 11 23:53:04 1997
+++ psutils/pstops.1 Thu Jul 19 15:21:51 2001
@@ -108,10 +108,11 @@
The
.I \-p
option can be used as an alternative, to set the paper size to
-.B a3, a4, a5, b5, letter, legal, tabloid, statement, executive, folio, quarto
+.B a3, a4, a5, b5, letter, legal, tabloid, statement, executive, folio, quarto, 10x14
or
-.B 10x14.
-The default paper size is
+.B _glibc,
+where latter one means the format of the current locale. The default
+paper size is
.B @PAPER@.
.PP
The
@@ -154,6 +155,12 @@
4:1L@.7(21cm,0)+-2L@.7(21cm,14.85cm)
.sp
for the reverse sides (or join them with a comma for duplex printing).
+.SH "ENVIRONMENT VARIABLES"
+.TP
+.B LC_ALL, LC_PAPER
+These variables are specifying the papertype when used paper is
+.B _glibc.
+For details see the locale(7) manpage.
.SH AUTHOR
Copyright (C) Angus J. C. Duggan 1991-1995
.SH "SEE ALSO"
--- psutils/psutil.c.paper Tue Mar 11 23:53:04 1997
+++ psutils/psutil.c Thu Jul 19 15:21:51 2001
@@ -21,6 +21,11 @@
#include <sys/types.h>
#include <sys/stat.h>
+#ifdef HAVE_LANGINFO_H
+# include <langinfo.h>
+# include <locale.h>
+#endif
+
#define iscomment(x,y) (strncmp(x,y,strlen(y)) == 0)
extern char *program ;
@@ -31,6 +36,16 @@
extern char pagelabel[BUFSIZ];
extern int pageno;
+#ifdef HAVE_LANGINFO_H
+/* When using papertype _glibc we are comparing floating point values. Therefore
+ * and because values in the papersize table are not exactly we are needing an
+ * epsilon value. */
+static float PT_EPSILON = 2.0;
+
+/* The factor needed to convert lengths given in mm to length in pt.*/
+static float MM_TO_PT_FACTOR = 72/25.4;
+#endif /* HAVE_LANGINFO_H */
+
static char buffer[BUFSIZ];
static long bytes = 0;
static long pagescmt = 0;
@@ -64,16 +79,52 @@
{ NULL, 0, 0 }
};
+#ifdef HAVE_LANGINFO_H
+/* Called if papertype is '_glibc'. It uses the current locale to determine the
+ * height and width of the current LC_PAPER and compares it with the items of
+ * the 'papersizes' list. */
+Paper* findpaperglibc()
+{
+ float height, width;
+ char *old_locale = setlocale (LC_PAPER, "");
+ Paper *result = 0, *pp;
+
+ height = MM_TO_PT_FACTOR * (unsigned int)(nl_langinfo(_NL_PAPER_HEIGHT));
+ width = MM_TO_PT_FACTOR * (unsigned int)(nl_langinfo(_NL_PAPER_WIDTH));
+
+ for (pp = papersizes; PaperName(pp) && result==0; pp++) {
+ if ( abs(PaperWidth(pp)-width)<PT_EPSILON &&
+ abs(PaperHeight(pp)-height)<PT_EPSILON )
+ result = pp;
+ }
+
+ setlocale(LC_PAPER, old_locale);
+
+ return result;
+}
+#endif /* HAVE_LANGINFO_H */
+
/* return pointer to paper size struct or NULL */
Paper* findpaper(char *name)
{
- Paper *pp;
- for (pp = papersizes; PaperName(pp); pp++) {
- if (strcmp(PaperName(pp), name) == 0) {
+ Paper *pp = 0;
+
+#ifdef HAVE_LANGINFO_H
+ if (strcmp(name, "_glibc") == 0) {
+ pp = findpaperglibc();
+ if (pp==0) name = "a4"; /* Paper in C locale */
+ }
+#endif /* HAVE_LANGINFO_H */
+
+ if (pp==0) {
+ for (pp = papersizes; PaperName(pp); pp++) {
+ if (strcmp(PaperName(pp), name) == 0) {
return pp;
- }
+ }
+ }
}
- return (Paper *)NULL;
+
+ return pp;
}
/* Make a file seekable, using temporary files if necessary */
--- psutils/psresize.1.paper Tue Mar 11 23:53:03 1997
+++ psutils/psresize.1 Thu Jul 19 15:21:51 2001
@@ -42,10 +42,11 @@
The
.I \-p
option can be used as an alternative, to set the output paper size to
-.B a3, a4, a5, b5, letter, legal, tabloid, statement, executive, folio, quarto
+.B a3, a4, a5, b5, letter, legal, tabloid, statement, executive, folio, quarto, 10x24
or
-.B 10x14.
-The default output paper size is
+.B _glibc,
+where latter one means the format of the current locale. The default
+output paper size is
.B @PAPER@.
.PP
The
@@ -69,6 +70,12 @@
.sp
psresize -PA4 -pletter in.ps out.ps
.sp
+.SH "ENVIRONMENT VARIABLES"
+.TP
+.B LC_ALL, LC_PAPER
+These variables are specifying the papertype when used paper is
+.B _glibc.
+For details see the locale(7) manpage.
.SH AUTHOR
Copyright (C) Angus J. C. Duggan 1991-1995
.SH "SEE ALSO"
--- psutils/psnup.1.paper Tue Mar 11 23:53:02 1997
+++ psutils/psnup.1 Thu Jul 19 15:21:51 2001
@@ -61,9 +61,11 @@
The
.I \-p
option can be used as an alternative, to set the paper size to
-.B a3, a4, a5, b5, letter, legal, tabloid, statement, executive, folio, quarto
+.B a3, a4, a5, b5, letter, legal, tabloid, statement, executive, folio, quarto,
+.B 10x14
or
-.B 10x14.
+.B _glibc,
+where latter one means the format of the current locale.
The default paper size is
.B @PAPER@.
The
@@ -148,6 +150,12 @@
on the first output page and
pages 2 then 3 of the input document
on the second output page.
+.SH "ENVIRONMENT VARIABLES"
+.TP
+.B LC_ALL, LC_PAPER
+These variables are specifying the papertype when used paper is
+.B _glibc.
+For details see the locale(7) manpage.
.SH AUTHOR
Copyright (C) Angus J. C. Duggan 1991-1995
.SH "SEE ALSO"
--- psutils/Makefile.unix.paper Thu Jul 19 15:21:51 2001
+++ psutils/Makefile.unix Thu Jul 19 15:24:07 2001
@@ -19,7 +19,11 @@
# psnup puts multiple logical pages on one physical page
# psresize scales and moves pages to fit on different paper sizes
-PAPER=a4
+PAPER="_glibc"
+
+# Comment it out if your machine does not have the <langutil.h> header
+# or does not know nl_langinfo()
+LANGINFO_FLAG = -DHAVE_LANGINFO_H
# Makefile for PSUtils under Unix
@@ -39,7 +43,7 @@
MANDIR = $(DESTDIR)/usr/man/man$(MANEXT)
CC = gcc
-CFLAGS = -DPAPER=\"$(PAPER)\" -DUNIX $(RPM_OPT_FLAGS) -Wall
+CFLAGS = -DPAPER=\"$(PAPER)\" -DUNIX $(RPM_OPT_FLAGS) $(LANGINFO_FLAG) -Wall
BIN = psbook psselect pstops epsffit psnup \
psresize

View File

@ -1,85 +1,188 @@
Summary: PostScript Utilities
# Unbundle gnulib
#%%bcond_without psutils_enables_unbundling_gnulib
Name: psutils
Version: 1.23
Release: 13%{?dist}
License: psutils
# We can't follow https://fedoraproject.org/wiki/Packaging:SourceURL#Github
# and use upstream tarball for building because ./bootstrap downloads gnulib.
# wget https://github.com/rrthomas/psutils/archive/master.zip && unzip master.zip && cd psutils-master/
# ./bootstrap && autoreconf -vfi && ./configure && make dist-xz
Source: psutils-%{version}.tar.xz
URL: https://github.com/rrthomas/psutils
# BZ#1072371
# https://github.com/rrthomas/psutils/commit/cca570c806bf4bde07f400b2bab9266e02998145
Patch0: psutils-paperconf.patch
Version: 2.06
Release: 2%{?dist}
Summary: PostScript utilities
# COPYING: GPLv3 text
# epsffit.1: GPLv3+
# epsffit.in.in: GPLv3+
# extractres.in.in: psutils
# includeres.in.in: psutils
# psbook.1: GPLv3+
# psbook.in.in: GPLv3+
# psjoin.1: GPLv3+
# psjoin.in.in: GPLv3+
# psnup.in.in: GPLv3+
# psresize.1: GPLv3+
# psresize.in.in: GPLv3+
# psselect.1: GPLv3+
# psselect.in.in: GPLv3+
# pstops.1: GPLv3+
# pstops.in.in: GPLv3+
# PSUtils.pm: GPLv3+
# README: GPLv3+
## Not in any binary package
# aclocal.m4: FSFULLR
# build-aux/compile: GPLv2+ with Autoconf exception
# build-aux/config.guess: GPLv3+ with Autoconf exception
# build-aux/config.sub: GPLv3+ with Autoconf exception
# build-aux/depcomp: GPLv2+ with Autoconf exception
# build-aux/install-sh: MIT
# build-aux/missing: GPLv2+ with Autoconf exception
# build-aux/mdate-sh: GPLv2+ with Autoconf exception
# build-aux/test-driver: GPLv2+ with Autoconf exception
# build-aux/texinfo.tex: GPLv3+ with TeX exception
# configure: FSFULLR
# INSTALL: FSFAP
# m4/00gnulib.m4: FSFULLR
# m4/ax_check_gnu_make.m4: FSFAP
# m4/gnulib-common.m4: FSFULLR
# m4/gnulib-comp.m4: GPLv3+ with Autoconf exception
# m4/relocatable-lib.m4: FSFULLR
# Makefile.in: FSFULLR
# old-scripts/fixwfwps: See LICENSE
# pre-inst-env.in: GPLv2+
License: GPLv3+ and psutils
URL: https://github.com/rrthomas/%{name}
Source: %{url}/releases/download/v%{version}/%{name}-%{version}.tar.gz
BuildArch: noarch
BuildRequires: autoconf
BuildRequires: automake >= 1.11
BuildRequires: bash
# coreutils for chmod in Makefile.am
BuildRequires: coreutils
# gcc is a default autoconf dependency and populates EXEEXT variable used in
# Makefile.am.
BuildRequires: gcc
%if %{with psutils_enables_unbundling_gnulib}
BuildRequires: gnulib-devel
%endif
BuildRequires: grep
BuildRequires: make
BuildRequires: perl-generators
BuildRequires: sed
# Run-time:
BuildRequires: paper
BuildRequires: perl-interpreter
BuildRequires: perl(:VERSION) >= 5.14
BuildRequires: perl(base)
BuildRequires: perl(Exporter)
BuildRequires: perl(Fcntl)
BuildRequires: perl(File::Basename)
BuildRequires: perl(File::Copy)
BuildRequires: perl(File::Spec::Functions)
BuildRequires: perl(File::Temp)
BuildRequires: perl(Getopt::Long)
BuildRequires: perl(IPC::Run3)
BuildRequires: perl(List::Util)
BuildRequires: perl(POSIX)
BuildRequires: perl(strict)
BuildRequires: perl(warnings)
# Tests:
BuildRequires: diffutils
# Only for building
Provides: bundled(gnulib)%(perl -ne 'if($. == 1 and /\A(\d+)-(\d+)-(\d+)/) {print qq{ = $1$2$3}}' %{_defaultdocdir}/gnulib/ChangeLog 2>/dev/null)
# psutils-perl was merged into psutils-2.03-1.fc34
Provides: %{name}-perl = %{version}-%{release}
Obsoletes: %{name}-perl < %{version}-%{release}
Requires: paper
Requires: /usr/bin/paperconf
# copylib - https://fedorahosted.org/fpc/ticket/174
Provides: bundled(gnulib)
# Filter private modules
%global __requires_exclude %{?__requires_exclude:%{__requires_exclude}|}^perl\\(PSUtils\\)
%global __provides_exclude %{?__provides_exclude:%{__provides_exclude}|}^perl\\(PSUtils\\)
%description
Utilities for manipulating PostScript documents.
Page selection and rearrangement are supported, including arrangement into
signatures for booklet printing, and page merging for n-up printing.
%package perl
Summary: psutils scripts requiring perl
BuildArch: noarch
%description perl
Various scripts from the psutils distribution that require perl.
%prep
%setup -q
%patch0 -p1 -b .paperconf
# Use /usr/bin/perl instead of /usr/bin/env perl
sed -i -e 's,/usr/bin/env perl,%{__perl},' \
extractres psjoin
%if %{with psutils_enables_unbundling_gnulib}
gnulib-tool --import --no-changelog relocatable-perl
%endif
autoreconf -fi
%build
%configure
%{__make} %{?_smp_mflags}
%configure --disable-relocatable
%{make_build}
%install
%{__make} install DESTDIR=%{buildroot}
%{make_install}
%check
unset PSUTILS_UNINSTALLED
make check %{?_smp_mflags}
%files
%doc README LICENSE
%license COPYING
# ChangeLog is not helpful
# old-scripts excluded intentionally
%doc README
%{_bindir}/epsffit
%{_bindir}/extractres
%{_bindir}/includeres
%{_bindir}/psbook
%{_bindir}/psjoin
%{_bindir}/psnup
%{_bindir}/psresize
%{_bindir}/psselect
%{_bindir}/pstops
%{_datadir}/%{name}
%{_mandir}/man1/epsffit.1*
%{_mandir}/man1/extractres.1*
%{_mandir}/man1/includeres.1*
%{_mandir}/man1/psbook.1*
%{_mandir}/man1/psjoin.1*
%{_mandir}/man1/psnup.1*
%{_mandir}/man1/psresize.1*
%{_mandir}/man1/psselect.1*
%{_mandir}/man1/pstops.1*
%{_mandir}/man1/psutils.1*
%files perl
%doc LICENSE
%{_bindir}/extractres
%{_bindir}/includeres
%{_bindir}/psjoin
%{_mandir}/man1/extractres.1*
%{_mandir}/man1/includeres.1*
%{_mandir}/man1/psjoin.1*
%changelog
* Tue Aug 10 2021 Mohan Boddu <mboddu@redhat.com> - 2.06-2
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Thu Jun 10 2021 Ondřej Pohořelský <opohorel@redhat.com> - 2.06-1
- 2.06 bump
- Resolves: #1970467
* Tue Apr 27 2021 Ondřej Pohořelský <opohorel@redhat.com> - 2.04-4
- Switch to bundled gnulib
- Resolves: #1952815
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 2.04-3
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.04-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Wed Nov 18 2020 Petr Pisar <ppisar@redhat.com> - 2.04-1
- 2.04 bump
* Fri Oct 02 2020 Petr Pisar <ppisar@redhat.com> - 2.03-1
- 2.03 bump
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.23-18
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.23-17
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.23-16
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.23-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.23-14
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.23-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (psutils-2.06.tar.gz) = e105471e33d16592dc1615fb568786256d9f3051875ca7c23c541b9d4587943ff9d93f5ad593716be4849b2f652d0e0727e5d1faa0506cdee0e9475e1c3da19f