commit 53e902237f821652d18d6346aeb48efa75c47550 Author: overweight <5324761+overweight@user.noreply.gitee.com> Date: Mon Sep 30 10:57:30 2019 -0400 Package init diff --git a/libpaper-file-leak.patch b/libpaper-file-leak.patch new file mode 100644 index 0000000..47b878b --- /dev/null +++ b/libpaper-file-leak.patch @@ -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)); + diff --git a/libpaper-useglibcfallback.patch b/libpaper-useglibcfallback.patch new file mode 100644 index 0000000..1216055 --- /dev/null +++ b/libpaper-useglibcfallback.patch @@ -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 + ++#include ++#include ++ + #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 + + #include ++#include + + + /* 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; diff --git a/libpaper.spec b/libpaper.spec new file mode 100644 index 0000000..9d79cff --- /dev/null +++ b/libpaper.spec @@ -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 - 1.1.24-23 +- Package init diff --git a/libpaper_1.1.24+nmu4.tar.gz b/libpaper_1.1.24+nmu4.tar.gz new file mode 100644 index 0000000..e0fb424 Binary files /dev/null and b/libpaper_1.1.24+nmu4.tar.gz differ