Package init
This commit is contained in:
commit
77bb72edaf
11
recode-3.6-getcwd.patch
Normal file
11
recode-3.6-getcwd.patch
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
--- recode-3.6/lib/gettext.c.orig 2005-03-07 12:18:30.000000000 +0100
|
||||||
|
+++ recode-3.6/lib/gettext.c 2005-03-07 12:23:14.000000000 +0100
|
||||||
|
@@ -1668,8 +1668,6 @@
|
||||||
|
# if !defined HAVE_GETCWD
|
||||||
|
char *getwd ();
|
||||||
|
# define getcwd(buf, max) getwd (buf)
|
||||||
|
-# else
|
||||||
|
-char *getcwd ();
|
||||||
|
# endif
|
||||||
|
# ifndef HAVE_STPCPY
|
||||||
|
static char *stpcpy PARAMS ((char *dest, const char *src));
|
||||||
BIN
recode-3.6.tar.gz
Normal file
BIN
recode-3.6.tar.gz
Normal file
Binary file not shown.
22
recode-automake.patch
Normal file
22
recode-automake.patch
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
--- recode-3.6.orig/configure.in 2001-01-03 16:50:54.000000000 +0100
|
||||||
|
+++ recode-3.6/configure.in 2012-07-23 14:15:28.000000000 +0200
|
||||||
|
@@ -15,7 +15,7 @@
|
||||||
|
AM_PROG_LIBTOOL
|
||||||
|
|
||||||
|
AC_ISC_POSIX
|
||||||
|
-AM_C_PROTOTYPES
|
||||||
|
+dnl AM_C_PROTOTYPES
|
||||||
|
AC_C_CONST
|
||||||
|
AC_C_INLINE
|
||||||
|
ad_AC_PROG_FLEX
|
||||||
|
--- recode-3.6.orig/src/Makefile.am 2000-12-06 17:36:12.000000000 +0100
|
||||||
|
+++ recode-3.6/src/Makefile.am 2012-07-23 14:47:07.000000000 +0200
|
||||||
|
@@ -17,7 +17,7 @@
|
||||||
|
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
||||||
|
# 02111-1307, USA.
|
||||||
|
|
||||||
|
-AUTOMAKE_OPTIONS = gnits ansi2knr
|
||||||
|
+AUTOMAKE_OPTIONS = gnits
|
||||||
|
bin_PROGRAMS = recode
|
||||||
|
lib_LTLIBRARIES = librecode.la
|
||||||
|
man_MANS = recode.1
|
||||||
11
recode-bool-bitfield.patch
Normal file
11
recode-bool-bitfield.patch
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
--- a/src/recodext.h.orig 2008-01-16 13:15:39.000000000 +0100
|
||||||
|
+++ b/src/recodext.h 2008-01-16 13:16:47.000000000 +0100
|
||||||
|
@@ -218,7 +218,7 @@
|
||||||
|
enum recode_symbol_type type : 3;
|
||||||
|
|
||||||
|
/* Non zero if this one should be ignored. */
|
||||||
|
- bool ignore : 2;
|
||||||
|
+ bool ignore : 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct recode_surface_list
|
||||||
16
recode-flex-m4.patch
Normal file
16
recode-flex-m4.patch
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
--- recode-3.6-orig/m4/flex.m4 2000-06-28 16:39:06.000000000 +0200
|
||||||
|
+++ recode-3.6/m4/flex.m4 2010-07-07 12:23:49.000000000 +0200
|
||||||
|
@@ -8,11 +8,8 @@
|
||||||
|
dnl Look for flex or missing, then run AC_PROG_LEX and AC_DECL_YYTEXT
|
||||||
|
AC_DEFUN(ad_AC_PROG_FLEX,
|
||||||
|
[AC_CHECK_PROGS(LEX, flex, missing)
|
||||||
|
-if test "$LEX" = missing; then
|
||||||
|
+AS_IF([test "$LEX" = missing], [
|
||||||
|
LEX="\$(top_srcdir)/$ac_aux_dir/missing flex"
|
||||||
|
LEX_OUTPUT_ROOT=lex.yy
|
||||||
|
AC_SUBST(LEX_OUTPUT_ROOT)dnl
|
||||||
|
-else
|
||||||
|
- AC_PROG_LEX
|
||||||
|
- AC_DECL_YYTEXT
|
||||||
|
-fi])
|
||||||
|
+])])
|
||||||
12
recode-format-security.patch
Normal file
12
recode-format-security.patch
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
diff -up recode-3.6/src/names.c.printf recode-3.6/src/names.c
|
||||||
|
--- recode-3.6/src/names.c.printf 2000-12-06 20:41:29.000000000 +0100
|
||||||
|
+++ recode-3.6/src/names.c 2013-12-18 12:48:42.578052395 +0100
|
||||||
|
@@ -892,7 +892,7 @@ list_concise_charset (RECODE_OUTER outer
|
||||||
|
if (ucs2 >= 0)
|
||||||
|
printf (format, code);
|
||||||
|
else if (mnemonic || counter2 != 112)
|
||||||
|
- printf (blanks);
|
||||||
|
+ printf ("%s", blanks);
|
||||||
|
|
||||||
|
if (mnemonic)
|
||||||
|
printf (counter2 == 112 ? " %s\n" : " %-3s", mnemonic);
|
||||||
51
recode-longfilename.patch
Normal file
51
recode-longfilename.patch
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
diff -u -r recode-3.6.orig/src/common.h recode-3.6/src/common.h
|
||||||
|
--- recode-3.6.orig/src/common.h 2000-06-28 20:40:15.000000000 +0200
|
||||||
|
+++ recode-3.6/src/common.h 2017-10-03 13:52:09.904644383 +0200
|
||||||
|
@@ -56,13 +56,14 @@
|
||||||
|
# define RETSIGTYPE void
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-#if DIFF_HASH
|
||||||
|
-# ifdef HAVE_LIMITS_H
|
||||||
|
-# include <limits.h>
|
||||||
|
-# endif
|
||||||
|
-# ifndef CHAR_BIT
|
||||||
|
-# define CHAR_BIT 8
|
||||||
|
-# endif
|
||||||
|
+#ifdef HAVE_LIMITS_H
|
||||||
|
+# include <limits.h>
|
||||||
|
+#endif
|
||||||
|
+#ifndef CHAR_BIT
|
||||||
|
+# define CHAR_BIT 8
|
||||||
|
+#endif
|
||||||
|
+#ifndef PATH_MAX
|
||||||
|
+# define PATH_MAX 4096
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Some systems do not define EXIT_*, even with STDC_HEADERS. */
|
||||||
|
diff -u -r recode-3.6.orig/src/main.c recode-3.6/src/main.c
|
||||||
|
--- recode-3.6.orig/src/main.c 2000-12-06 20:44:59.000000000 +0100
|
||||||
|
+++ recode-3.6/src/main.c 2017-10-03 14:32:51.274017940 +0200
|
||||||
|
@@ -847,7 +847,7 @@
|
||||||
|
for (; optind < argc; optind++)
|
||||||
|
{
|
||||||
|
const char *input_name;
|
||||||
|
- char output_name[200]; /* FIXME: dangerous limit */
|
||||||
|
+ char output_name[PATH_MAX];
|
||||||
|
FILE *file;
|
||||||
|
struct stat file_stat;
|
||||||
|
struct utimbuf file_utime;
|
||||||
|
@@ -871,7 +871,12 @@
|
||||||
|
|
||||||
|
/* FIXME: Scott Schwartz <schwartz@bio.cse.psu.edu> writes:
|
||||||
|
"There's no reason to think that that name is unique." */
|
||||||
|
-
|
||||||
|
+ // To avoid overflows, the size of the array pointed by destination (output_name)
|
||||||
|
+ // shall be long enough to contain the same C string as source
|
||||||
|
+ // (including the terminating null character).
|
||||||
|
+ if (strlen(input_name) >= PATH_MAX) {
|
||||||
|
+ error (EXIT_FAILURE, 0, "input_name reach the PATH_MAX limit");
|
||||||
|
+ }
|
||||||
|
strcpy (output_name, input_name);
|
||||||
|
#if DOSWIN_OR_OS2
|
||||||
|
for (cursor = output_name + strlen (output_name);
|
||||||
68
recode.patch
Normal file
68
recode.patch
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
--- recode-3.6.orig/src/libiconv.c
|
||||||
|
+++ recode-3.6/src/libiconv.c
|
||||||
|
@@ -1,5 +1,5 @@
|
||||||
|
/* Conversion of files between different charsets and surfaces.
|
||||||
|
- Copyright © 1999, 2000 Free Software Foundation, Inc.
|
||||||
|
+ Copyright © 1999, 2000, 2001 Free Software Foundation, Inc.
|
||||||
|
Contributed by François Pinard <pinard@iro.umontreal.ca>, 1999,
|
||||||
|
and Bruno Haible <haible@clisp.cons.org>, 2000.
|
||||||
|
|
||||||
|
@@ -195,12 +195,17 @@
|
||||||
|
memcpy() doesn't do here, because the regions might overlap.
|
||||||
|
memmove() isn't worth it, because we rarely have to move more
|
||||||
|
than 12 bytes. */
|
||||||
|
- if (input > input_buffer && input_left > 0)
|
||||||
|
+ cursor = input_buffer;
|
||||||
|
+ if (input_left > 0)
|
||||||
|
{
|
||||||
|
- cursor = input_buffer;
|
||||||
|
- do
|
||||||
|
- *cursor++ = *input++;
|
||||||
|
- while (--input_left > 0);
|
||||||
|
+ if (input > input_buffer)
|
||||||
|
+ {
|
||||||
|
+ do
|
||||||
|
+ *cursor++ = *input++;
|
||||||
|
+ while (--input_left > 0);
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+ cursor += input_left;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
--- recode-3.6.orig/src/request.c
|
||||||
|
+++ recode-3.6/src/request.c
|
||||||
|
@@ -1073,7 +1073,7 @@
|
||||||
|
if (task->output.cursor + 4 >= task->output.limit)
|
||||||
|
{
|
||||||
|
RECODE_OUTER outer = task->request->outer;
|
||||||
|
- size_t old_size = task->output.limit - task->output.buffer;
|
||||||
|
+ size_t old_size = task->output.cursor - task->output.buffer;
|
||||||
|
size_t new_size = task->output.cursor + 4 - task->output.buffer;
|
||||||
|
|
||||||
|
/* FIXME: Rethink about how the error should be reported. */
|
||||||
|
--- recode-3.6.orig/src/task.c
|
||||||
|
+++ recode-3.6/src/task.c
|
||||||
|
@@ -1198,6 +1198,8 @@
|
||||||
|
else
|
||||||
|
success = transform_mere_copy (subtask);
|
||||||
|
|
||||||
|
+ task->output = subtask->output;
|
||||||
|
+
|
||||||
|
if (subtask->input.name && *subtask->input.name)
|
||||||
|
fclose (subtask->input.file);
|
||||||
|
if (subtask->output.name && *subtask->output.name)
|
||||||
|
--- recode-3.6.orig/src/hash.h
|
||||||
|
+++ recode-3.6/src/hash.h
|
||||||
|
@@ -21,6 +21,11 @@
|
||||||
|
/* Make sure USE_OBSTACK is defined to 1 if you want the allocator to use
|
||||||
|
obstacks instead of malloc, and recompile `hash.c' with same setting. */
|
||||||
|
|
||||||
|
+#define hash_lookup recode_hash_lookup
|
||||||
|
+#define hash_delete recode_hash_delete
|
||||||
|
+#define hash_free recode_hash_free
|
||||||
|
+#define hash_insert recode_hash_insert
|
||||||
|
+
|
||||||
|
#ifndef PARAMS
|
||||||
|
# if PROTOTYPES || __STDC__
|
||||||
|
# define PARAMS(Args) Args
|
||||||
99
recode.spec
Normal file
99
recode.spec
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
Name: recode
|
||||||
|
Version: 3.6
|
||||||
|
Release: 49
|
||||||
|
Summary: Converter between charsets and surfaces
|
||||||
|
|
||||||
|
|
||||||
|
License: GPLv2 and LGPLv2.1
|
||||||
|
URL: https://www.gnu.org/software/recode/
|
||||||
|
Source0: https://github.com/rrthomas/recode/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
|
||||||
|
|
||||||
|
Patch0: recode.patch
|
||||||
|
Patch1: recode-3.6-getcwd.patch
|
||||||
|
Patch2: recode-bool-bitfield.patch
|
||||||
|
Patch3: recode-flex-m4.patch
|
||||||
|
Patch4: recode-automake.patch
|
||||||
|
Patch5: recode-format-security.patch
|
||||||
|
Patch6: recode-longfilename.patch
|
||||||
|
|
||||||
|
BuildRequires: libtool texinfo
|
||||||
|
Requires: info
|
||||||
|
|
||||||
|
%description
|
||||||
|
The recode library converts files between character sets and usages.
|
||||||
|
It recognises or produces more than 300 different character sets
|
||||||
|
and transliterates files between almost any pair. When exact
|
||||||
|
transliteration are not possible, it gets rid of offending characters
|
||||||
|
or fall back on approximations. The recode program is a handy
|
||||||
|
front-end to the library.
|
||||||
|
|
||||||
|
%package devel
|
||||||
|
Summary: Development header files for using the recode library
|
||||||
|
Requires: %{name} = %{version}-%{release}
|
||||||
|
Provides: %{name}-static
|
||||||
|
Obsoletes: %{name}-static
|
||||||
|
|
||||||
|
%description devel
|
||||||
|
The recode library converts files between character sets and usages.
|
||||||
|
The recode-devel package provides the necessary development libraries
|
||||||
|
and include files to allow you to develop applications using the recode
|
||||||
|
libraries.
|
||||||
|
|
||||||
|
%package help
|
||||||
|
Summary: Documents for %{name}
|
||||||
|
Buildarch: noarch
|
||||||
|
Requires: man info
|
||||||
|
|
||||||
|
%description help
|
||||||
|
Man pages and other related documents for %{name}.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%autosetup -n %{name}-%{version} -p1
|
||||||
|
|
||||||
|
%build
|
||||||
|
rm m4/libtool.m4
|
||||||
|
rm acinclude.m4
|
||||||
|
autoreconf -vif
|
||||||
|
%configure
|
||||||
|
make %{?_smp_mflags}
|
||||||
|
|
||||||
|
%check
|
||||||
|
make check %{?_smp_mflags}
|
||||||
|
|
||||||
|
%install
|
||||||
|
%make_install
|
||||||
|
%find_lang %{name}
|
||||||
|
|
||||||
|
%post
|
||||||
|
/sbin/ldconfig
|
||||||
|
if [ -f %{_infodir}/%{name}.info.gz ]; then
|
||||||
|
/sbin/install-info %{_infodir}/%{name}.info.gz %{_infodir}/dir || :
|
||||||
|
fi
|
||||||
|
%preun
|
||||||
|
if [ $1 = 0 ]; then
|
||||||
|
if [ -f %{_infodir}/%{name}.info.gz ]; then
|
||||||
|
/sbin/install-info --delete %{_infodir}/%{name}.info.gz %{_infodir}/dir || :
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
%postun -p /sbin/ldconfig
|
||||||
|
|
||||||
|
%files -f %{name}.lang
|
||||||
|
%license COPYING*
|
||||||
|
%{_bindir}/recode
|
||||||
|
%{_libdir}/librecode.so.*
|
||||||
|
|
||||||
|
%files devel
|
||||||
|
%{_includedir}/*.h
|
||||||
|
%{_libdir}/librecode.so
|
||||||
|
%{_libdir}/librecode.*a
|
||||||
|
|
||||||
|
%files help
|
||||||
|
%doc ABOUT-NLS AUTHORS BACKLOG ChangeLog INSTALL NEWS README THANKS TODO
|
||||||
|
%{_infodir}/*.info.gz
|
||||||
|
%exclude %{_infodir}/dir*
|
||||||
|
%{_mandir}/man1/*.1.gz
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Fri Aug 23 2019 openEuler Buildteam <buildteam@openeuler.org> - 3.6-49
|
||||||
|
- Package init
|
||||||
Loading…
x
Reference in New Issue
Block a user