Package init
This commit is contained in:
commit
53e902237f
22
libpaper-file-leak.patch
Normal file
22
libpaper-file-leak.patch
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
diff -up libpaper-1.1.24+nmu5/lib/paper.c.file-leak libpaper-1.1.24+nmu5/lib/paper.c
|
||||||
|
--- libpaper-1.1.24+nmu5/lib/paper.c.file-leak 2018-03-09 16:21:01.028345956 +0100
|
||||||
|
+++ libpaper-1.1.24+nmu5/lib/paper.c 2018-03-09 16:40:57.824279357 +0100
|
||||||
|
@@ -140,7 +140,7 @@ char* systempapername(void) {
|
||||||
|
char* paperstr;
|
||||||
|
char* paperenv;
|
||||||
|
const char* paperdef;
|
||||||
|
- FILE* ps;
|
||||||
|
+ FILE* ps = NULL;
|
||||||
|
struct stat statbuf;
|
||||||
|
const struct paper* pp;
|
||||||
|
int c;
|
||||||
|
@@ -224,6 +224,9 @@ PAPERSIZEVAR, fall-back to the old behav
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (ps)
|
||||||
|
+ fclose(ps);
|
||||||
|
+
|
||||||
|
paperdef = defaultpapername();
|
||||||
|
paperstr = malloc((strlen(paperdef) + 1) * sizeof(char));
|
||||||
|
|
||||||
80
libpaper-useglibcfallback.patch
Normal file
80
libpaper-useglibcfallback.patch
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
diff -up libpaper-1.1.24+nmu3/lib/paper.c.useglibcfallback libpaper-1.1.24+nmu3/lib/paper.c
|
||||||
|
--- libpaper-1.1.24+nmu3/lib/paper.c.useglibcfallback 2010-04-24 08:12:11.000000000 -0400
|
||||||
|
+++ libpaper-1.1.24+nmu3/lib/paper.c 2014-04-22 15:58:33.120039001 -0400
|
||||||
|
@@ -20,6 +20,9 @@
|
||||||
|
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
+#include <locale.h>
|
||||||
|
+#include <langinfo.h>
|
||||||
|
+
|
||||||
|
#include "paper.h"
|
||||||
|
|
||||||
|
struct paper {
|
||||||
|
@@ -108,6 +111,27 @@ in PAPERCONFVAR, fall-back to the old be
|
||||||
|
}
|
||||||
|
|
||||||
|
const char* defaultpapername(void) {
|
||||||
|
+#if defined(LC_PAPER) && defined(_GNU_SOURCE)
|
||||||
|
+
|
||||||
|
+#define NL_PAPER_GET(x) \
|
||||||
|
+ ((union { char *string; unsigned int word; })nl_langinfo(x)).word
|
||||||
|
+
|
||||||
|
+#define PT_TO_MM(v) (unsigned int)((v * 2.54 * 10 / 72) + 0.5)
|
||||||
|
+
|
||||||
|
+ const struct paper* pp;
|
||||||
|
+
|
||||||
|
+ unsigned int w = NL_PAPER_GET(_NL_PAPER_WIDTH);
|
||||||
|
+ unsigned int h = NL_PAPER_GET(_NL_PAPER_HEIGHT);
|
||||||
|
+
|
||||||
|
+ for (pp = paperfirst(); pp; pp = papernext(pp)) {
|
||||||
|
+ if (
|
||||||
|
+ PT_TO_MM(pp->pswidth) == w &&
|
||||||
|
+ PT_TO_MM(pp->psheight) == h
|
||||||
|
+ ) {
|
||||||
|
+ return pp->name;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+#endif
|
||||||
|
return PAPERSIZE;
|
||||||
|
}
|
||||||
|
|
||||||
|
diff -up libpaper-1.1.24+nmu3/man/paperconf.1.in.useglibcfallback libpaper-1.1.24+nmu3/man/paperconf.1.in
|
||||||
|
--- libpaper-1.1.24+nmu3/man/paperconf.1.in.useglibcfallback 2014-04-22 15:58:33.121038995 -0400
|
||||||
|
+++ libpaper-1.1.24+nmu3/man/paperconf.1.in 2014-04-22 16:00:15.973428376 -0400
|
||||||
|
@@ -48,10 +48,12 @@ looking in order at the
|
||||||
|
.B @PAPERSIZEVAR@
|
||||||
|
environment variable, at the contents of the file specified by the
|
||||||
|
.B @PAPERCONFVAR@
|
||||||
|
-environment variable, at the contents of
|
||||||
|
+environment variable, at the contents of the file
|
||||||
|
.B @PAPERCONF@
|
||||||
|
-or by using
|
||||||
|
-.B letter
|
||||||
|
+, consulting the values controlled by the
|
||||||
|
+.B LC_PAPER
|
||||||
|
+locale setting, or by using
|
||||||
|
+.B @PAPERSIZE@
|
||||||
|
as a fall-back value if none of the other alternatives are successful.
|
||||||
|
By default, width and height of the paper are printed in PostScript points.
|
||||||
|
.SH OPTIONS
|
||||||
|
diff -up libpaper-1.1.24+nmu3/src/paperconf.c.useglibcfallback libpaper-1.1.24+nmu3/src/paperconf.c
|
||||||
|
--- libpaper-1.1.24+nmu3/src/paperconf.c.useglibcfallback 2012-05-03 15:05:12.000000000 -0400
|
||||||
|
+++ libpaper-1.1.24+nmu3/src/paperconf.c 2014-04-22 15:58:33.121038995 -0400
|
||||||
|
@@ -13,6 +13,7 @@
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
|
#include <paper.h>
|
||||||
|
+#include <locale.h>
|
||||||
|
|
||||||
|
|
||||||
|
/* needed for GNU/Hurd */
|
||||||
|
@@ -99,6 +100,8 @@ int main(int argc, char** argv)
|
||||||
|
|
||||||
|
const char* progname;
|
||||||
|
|
||||||
|
+ setlocale(LC_ALL, "");
|
||||||
|
+
|
||||||
|
progname = strrchr(*argv, '/');
|
||||||
|
if (progname) {
|
||||||
|
++progname;
|
||||||
85
libpaper.spec
Normal file
85
libpaper.spec
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
Name: libpaper
|
||||||
|
Version: 1.1.24
|
||||||
|
Release: 23
|
||||||
|
Summary: Library for handling paper characteristics
|
||||||
|
License: GPLv2
|
||||||
|
URL: http://packages.qa.debian.org/libp/libpaper.html
|
||||||
|
Source0: http://ftp.debian.org/debian/pool/main/libp/libpaper/%{name}_%{version}+nmu4.tar.gz
|
||||||
|
|
||||||
|
# Patch to let libpaper fallback through LC_PAPER before defaulting to "letter"
|
||||||
|
# http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=481213
|
||||||
|
Patch0: libpaper-useglibcfallback.patch
|
||||||
|
# Memory leak
|
||||||
|
Patch1: libpaper-file-leak.patch
|
||||||
|
|
||||||
|
BuildRequires: gcc, libtool, gettext, gawk
|
||||||
|
|
||||||
|
%description
|
||||||
|
The libpaper paper-handling library automates recognition of many different
|
||||||
|
paper types and sizes for programs that need to deal with printed output.
|
||||||
|
|
||||||
|
%package devel
|
||||||
|
Summary: Development files for using libpaper
|
||||||
|
Requires: %{name} = %{version}-%{release}
|
||||||
|
|
||||||
|
%description devel
|
||||||
|
This package contains the development files.
|
||||||
|
|
||||||
|
%package help
|
||||||
|
Summary: Documents for libpaper
|
||||||
|
Buildarch: noarch
|
||||||
|
Requires: man
|
||||||
|
|
||||||
|
%description help
|
||||||
|
Man pages and other related documents for libpaper.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%autosetup -n %{name}-%{version}+nmu4 -p1
|
||||||
|
libtoolize
|
||||||
|
|
||||||
|
%build
|
||||||
|
touch AUTHORS NEWS
|
||||||
|
aclocal
|
||||||
|
autoconf
|
||||||
|
automake -a
|
||||||
|
%configure --disable-static
|
||||||
|
%disable_rpath
|
||||||
|
%make_build
|
||||||
|
|
||||||
|
%install
|
||||||
|
%make_install
|
||||||
|
rm $RPM_BUILD_ROOT%{_libdir}/*.la
|
||||||
|
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}
|
||||||
|
echo '# Simply write the paper name. See papersize(5) for possible values' > $RPM_BUILD_ROOT%{_sysconfdir}/papersize
|
||||||
|
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/libpaper.d
|
||||||
|
for i in cs da de es fr gl hu it ja nl pt_BR sv tr uk vi; do
|
||||||
|
mkdir -p $RPM_BUILD_ROOT%{_datadir}/locale/$i/LC_MESSAGES/;
|
||||||
|
msgfmt debian/po/$i.po -o $RPM_BUILD_ROOT%{_datadir}/locale/$i/LC_MESSAGES/%{name}.mo;
|
||||||
|
done
|
||||||
|
%find_lang %{name}
|
||||||
|
|
||||||
|
%ldconfig_scriptlets
|
||||||
|
|
||||||
|
%files -f %{name}.lang
|
||||||
|
%doc ChangeLog README
|
||||||
|
%license COPYING
|
||||||
|
%config(noreplace) %{_sysconfdir}/papersize
|
||||||
|
%dir %{_sysconfdir}/libpaper.d
|
||||||
|
%{_bindir}/paperconf
|
||||||
|
%{_libdir}/libpaper.so.1.1.2
|
||||||
|
%{_libdir}/libpaper.so.1
|
||||||
|
%{_sbindir}/paperconfig
|
||||||
|
|
||||||
|
%files devel
|
||||||
|
%{_includedir}/paper.h
|
||||||
|
%{_libdir}/libpaper.so
|
||||||
|
|
||||||
|
%files help
|
||||||
|
%{_mandir}/man1/*
|
||||||
|
%{_mandir}/man5/*
|
||||||
|
%{_mandir}/man8/*
|
||||||
|
%{_mandir}/man3/*
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Thu Sep 05 2019 openEuler Buildteam <buildteam@openeuler.org> - 1.1.24-23
|
||||||
|
- Package init
|
||||||
BIN
libpaper_1.1.24+nmu4.tar.gz
Normal file
BIN
libpaper_1.1.24+nmu4.tar.gz
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user