robert pushed to arj (el6). "Merge remote branch 'origin/master' into el6 (..more)"

notifications at fedoraproject.org notifications at fedoraproject.org
Fri Apr 3 14:05:40 UTC 2015


>From edbc857a0e192aae87ee17dbf77c9cf48c4053e0 Mon Sep 17 00:00:00 2001
From: Bill Nottingham <notting at fedoraproject.org>
Date: Wed, 25 Nov 2009 22:40:36 +0000
Subject: Fix typo that causes a failure to update the common directory.
 (releng     #2781)


diff --git a/Makefile b/Makefile
index f0c5a63..44135a8 100644
--- a/Makefile
+++ b/Makefile
@@ -1,10 +1,10 @@
 # Makefile for source rpm: arj
-# $Id$
+# $Id: Makefile,v 1.1 2006/09/10 05:10:29 jwrdegoede Exp $
 NAME := arj
 SPECFILE = $(firstword $(wildcard *.spec))
 
 define find-makefile-common
-for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
+for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$d/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
 endef
 
 MAKEFILE_COMMON := $(shell $(find-makefile-common))
-- 
cgit v0.10.2


>From a478437d2c33aab22d72dc14ed93fe90aa4a8c6e Mon Sep 17 00:00:00 2001
From: Robert Scheck <robert at fedoraproject.org>
Date: Sun, 28 Mar 2010 15:52:12 +0000
Subject: Re-enable parallel builds again now that quoting is fixed


diff --git a/arj.spec b/arj.spec
index e60b898..7780adc 100644
--- a/arj.spec
+++ b/arj.spec
@@ -1,7 +1,7 @@
 Summary:	Archiver for .arj files
 Name:		arj
 Version:	3.10.22
-Release:	11%{?dist}
+Release:	12%{?dist}
 License:	GPL+
 Group:		Applications/Archiving
 URL:		http://arj.sourceforge.net/
@@ -45,8 +45,8 @@ pushd gnu
   %configure
 popd
 
-# No %{?_smp_mflags}, arj is not parallel build clean, no stripping
-make ADD_LDFLAGS=""
+# Disable binary strippings
+make %{?_smp_mflags} ADD_LDFLAGS=""
 
 %install
 rm -rf $RPM_BUILD_ROOT
@@ -72,6 +72,9 @@ rm -rf $RPM_BUILD_ROOT
 %{_mandir}/man1/*arj*1.*
 
 %changelog
+* Sun Mar 28 2010 Robert Scheck <robert at fedoraproject.org> 3.10.22-12
+- Re-enable parallel builds again now that quoting is fixed
+
 * Sun Sep  6 2009 Milos Jakubicek <xjakub at fi.muni.cz> 3.10.22-11
 - Fix FTBFS: added arj-3.10.22-quotes.patch
 
-- 
cgit v0.10.2


>From ed8019339fe9f980c8c6a790536e40c97fd1bb3c Mon Sep 17 00:00:00 2001
From: Fedora Release Engineering <rel-eng at lists.fedoraproject.org>
Date: Wed, 28 Jul 2010 10:10:58 +0000
Subject: dist-git conversion


diff --git a/.cvsignore b/.cvsignore
deleted file mode 100644
index be1e379..0000000
--- a/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-arj-3.10.22.tar.gz
-arj_3.10.22-6.diff.gz
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..be1e379
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+arj-3.10.22.tar.gz
+arj_3.10.22-6.diff.gz
diff --git a/Makefile b/Makefile
deleted file mode 100644
index 44135a8..0000000
--- a/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Makefile for source rpm: arj
-# $Id: Makefile,v 1.1 2006/09/10 05:10:29 jwrdegoede Exp $
-NAME := arj
-SPECFILE = $(firstword $(wildcard *.spec))
-
-define find-makefile-common
-for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$d/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
-endef
-
-MAKEFILE_COMMON := $(shell $(find-makefile-common))
-
-ifeq ($(MAKEFILE_COMMON),)
-# attept a checkout
-define checkout-makefile-common
-test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2
-endef
-
-MAKEFILE_COMMON := $(shell $(checkout-makefile-common))
-endif
-
-include $(MAKEFILE_COMMON)
-- 
cgit v0.10.2


>From fd8c3d81da3ffa3dde852f520ee2e6fbdb0637db Mon Sep 17 00:00:00 2001
From: Dennis Gilmore <dennis at ausil.us>
Date: Mon, 7 Feb 2011 20:02:59 -0600
Subject: - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild


diff --git a/arj.spec b/arj.spec
index 7780adc..f81e951 100644
--- a/arj.spec
+++ b/arj.spec
@@ -1,7 +1,7 @@
 Summary:	Archiver for .arj files
 Name:		arj
 Version:	3.10.22
-Release:	12%{?dist}
+Release:	13%{?dist}
 License:	GPL+
 Group:		Applications/Archiving
 URL:		http://arj.sourceforge.net/
@@ -72,6 +72,9 @@ rm -rf $RPM_BUILD_ROOT
 %{_mandir}/man1/*arj*1.*
 
 %changelog
+* Mon Feb 07 2011 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 3.10.22-13
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
+
 * Sun Mar 28 2010 Robert Scheck <robert at fedoraproject.org> 3.10.22-12
 - Re-enable parallel builds again now that quoting is fixed
 
-- 
cgit v0.10.2


>From 8cc372966245361bac9662b4a2230e168569efa2 Mon Sep 17 00:00:00 2001
From: Dennis Gilmore <dennis at ausil.us>
Date: Thu, 12 Jan 2012 15:44:30 -0600
Subject: - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild


diff --git a/arj.spec b/arj.spec
index f81e951..84e8e9b 100644
--- a/arj.spec
+++ b/arj.spec
@@ -1,7 +1,7 @@
 Summary:	Archiver for .arj files
 Name:		arj
 Version:	3.10.22
-Release:	13%{?dist}
+Release:	14%{?dist}
 License:	GPL+
 Group:		Applications/Archiving
 URL:		http://arj.sourceforge.net/
@@ -72,6 +72,9 @@ rm -rf $RPM_BUILD_ROOT
 %{_mandir}/man1/*arj*1.*
 
 %changelog
+* Thu Jan 12 2012 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 3.10.22-14
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
+
 * Mon Feb 07 2011 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 3.10.22-13
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
 
-- 
cgit v0.10.2


>From dbb5171e7b583479cf57f31f54a3e033bac59868 Mon Sep 17 00:00:00 2001
From: Dennis Gilmore <dennis at ausil.us>
Date: Wed, 18 Jul 2012 11:36:47 -0500
Subject: - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild


diff --git a/arj.spec b/arj.spec
index 84e8e9b..3076396 100644
--- a/arj.spec
+++ b/arj.spec
@@ -1,7 +1,7 @@
 Summary:	Archiver for .arj files
 Name:		arj
 Version:	3.10.22
-Release:	14%{?dist}
+Release:	15%{?dist}
 License:	GPL+
 Group:		Applications/Archiving
 URL:		http://arj.sourceforge.net/
@@ -72,6 +72,9 @@ rm -rf $RPM_BUILD_ROOT
 %{_mandir}/man1/*arj*1.*
 
 %changelog
+* Wed Jul 18 2012 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 3.10.22-15
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
+
 * Thu Jan 12 2012 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 3.10.22-14
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
 
-- 
cgit v0.10.2


>From b6087ea3880a14eed9d0bafd7a2f761695367cd1 Mon Sep 17 00:00:00 2001
From: Dennis Gilmore <dennis at ausil.us>
Date: Wed, 13 Feb 2013 11:02:53 -0600
Subject: - Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild


diff --git a/arj.spec b/arj.spec
index 3076396..425822d 100644
--- a/arj.spec
+++ b/arj.spec
@@ -1,7 +1,7 @@
 Summary:	Archiver for .arj files
 Name:		arj
 Version:	3.10.22
-Release:	15%{?dist}
+Release:	16%{?dist}
 License:	GPL+
 Group:		Applications/Archiving
 URL:		http://arj.sourceforge.net/
@@ -72,6 +72,9 @@ rm -rf $RPM_BUILD_ROOT
 %{_mandir}/man1/*arj*1.*
 
 %changelog
+* Wed Feb 13 2013 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 3.10.22-16
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
+
 * Wed Jul 18 2012 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 3.10.22-15
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
 
-- 
cgit v0.10.2


>From 267bdb7f459751933bc5161eff5217dc1d59bf3b Mon Sep 17 00:00:00 2001
From: Dennis Gilmore <dennis at ausil.us>
Date: Fri, 2 Aug 2013 20:54:31 -0500
Subject: - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild


diff --git a/arj.spec b/arj.spec
index 425822d..3622ddb 100644
--- a/arj.spec
+++ b/arj.spec
@@ -1,7 +1,7 @@
 Summary:	Archiver for .arj files
 Name:		arj
 Version:	3.10.22
-Release:	16%{?dist}
+Release:	17%{?dist}
 License:	GPL+
 Group:		Applications/Archiving
 URL:		http://arj.sourceforge.net/
@@ -72,6 +72,9 @@ rm -rf $RPM_BUILD_ROOT
 %{_mandir}/man1/*arj*1.*
 
 %changelog
+* Sat Aug 03 2013 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 3.10.22-17
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
+
 * Wed Feb 13 2013 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 3.10.22-16
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
 
-- 
cgit v0.10.2


>From 42d3218bd18b22679e5f3a2be83493e6e9bf8bb3 Mon Sep 17 00:00:00 2001
From: Robert Scheck <robert at fedoraproject.org>
Date: Sun, 20 Oct 2013 01:21:07 +0200
Subject: Replaced compressed Debian patch file by regular patches


diff --git a/.gitignore b/.gitignore
index be1e379..4649868 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1 @@
 arj-3.10.22.tar.gz
-arj_3.10.22-6.diff.gz
diff --git a/arj-3.10.22-64_bit_clean.patch b/arj-3.10.22-64_bit_clean.patch
new file mode 100644
index 0000000..868fc13
--- /dev/null
+++ b/arj-3.10.22-64_bit_clean.patch
@@ -0,0 +1,200 @@
+Patch by Guillem Jover <guillem at debian.org> for arj <= 3.10.22 which
+makes the code 64 bit clean. For further information, please see also
+http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=339815
+
+Index: b/arj_arcv.c
+===================================================================
+--- a/arj_arcv.c	2005-06-21 22:53:12.000000000 +0300
++++ b/arj_arcv.c	2008-06-16 08:25:43.000000000 +0300
+@@ -59,27 +59,27 @@ static char idxid_fault[]="?";
+ #define setup_hput(ptr) (tmp_hptr=(ptr))
+ 
+ #define hget_byte() (*(tmp_hptr++)&0xFF)
+-#define hput_byte(c) (*(tmp_hptr++)=(char) (c))
++#define hput_byte(c) (*(tmp_hptr++)=(uint8_t) (c))
+ 
+ /* Reads two bytes from the header, incrementing the pointer */
+ 
+-static unsigned int hget_word()
++static uint16_t hget_word()
+ {
+- unsigned int result;
++ uint16_t result;
+ 
+  result=mget_word(tmp_hptr);
+- tmp_hptr+=sizeof(short);
++ tmp_hptr+=sizeof(uint16_t);
+  return result;
+ }
+ 
+ /* Reads four bytes from the header, incrementing the pointer */
+ 
+-static unsigned long hget_longword()
++static uint32_t hget_longword()
+ {
+- unsigned long result;
++ uint32_t result;
+ 
+  result=mget_dword(tmp_hptr);
+- tmp_hptr+=sizeof(unsigned long);
++ tmp_hptr+=sizeof(uint32_t);
+  return result;
+ }
+ 
+@@ -87,18 +87,18 @@ static unsigned long hget_longword()
+ 
+ /* Writes two bytes to the header, incrementing the pointer */
+ 
+-static void hput_word(unsigned int w)
++static void hput_word(uint16_t w)
+ {
+  mput_word(w,tmp_hptr); 
+- tmp_hptr+=sizeof(unsigned short);
++ tmp_hptr+=sizeof(uint16_t);
+ }
+ 
+ /* Writes four bytes to the header, incrementing the pointer */
+ 
+-static void hput_longword(unsigned long l)
++static void hput_longword(uint32_t l)
+ {
+  mput_dword(l,tmp_hptr);
+- tmp_hptr+=sizeof(unsigned long);
++ tmp_hptr+=sizeof(uint32_t);
+ }
+ 
+ /* Calculates and stores the basic header size */
+Index: b/arj_proc.c
+===================================================================
+--- a/arj_proc.c	2008-06-16 08:25:28.000000000 +0300
++++ b/arj_proc.c	2008-06-16 08:25:43.000000000 +0300
+@@ -585,7 +585,7 @@ int search_for_extension(char *name, cha
+ /* Returns the exact amount of data that could be safely written to the
+    destination volume */
+ 
+-unsigned long get_volfree(unsigned int increment)
++unsigned long get_volfree(unsigned long increment)
+ {
+  unsigned long pvol;
+  unsigned int arjsec_overhead;
+@@ -605,7 +605,7 @@ unsigned long get_volfree(unsigned int i
+  remain=volume_limit-ftell(aostream)-pvol-(long)arjsec_overhead-
+         (long)out_bytes-(long)cpos-(long)ext_voldata-
+         MULTIVOLUME_RESERVE-t_volume_offset;
+- return((unsigned long)min(remain, (unsigned long)increment));
++ return((unsigned long)min(remain, increment));
+ }
+ 
+ /* Performs various checks when multivolume data is packed to predict an
+@@ -2466,14 +2466,14 @@ static int get_str_from_jq()
+     *tsptr='\0';
+   endptr=tsptr;
+   tsptr=sptr;
+-  while((unsigned int)tsptr<(unsigned int)endptr&&patterns<SEARCH_STR_MAX)
++  while((intptr_t)tsptr<(intptr_t)endptr&&patterns<SEARCH_STR_MAX)
+   {
+    while(*tsptr=='\0')
+     tsptr++;
+-   if((unsigned int)tsptr<(unsigned int)endptr)
++   if((intptr_t)tsptr<(intptr_t)endptr)
+    {
+     search_str[patterns++]=tsptr;
+-    while(*tsptr!='\0'&&(unsigned int)tsptr<(unsigned int)endptr)
++    while(*tsptr!='\0'&&(intptr_t)tsptr<(intptr_t)endptr)
+      tsptr++;
+    }
+   }
+@@ -2901,9 +2901,9 @@ char *ltrim(char *str)
+ #if (defined(WORDS_BIGENDIAN) || defined(ALIGN_POINTERS)) && !defined(ARJDISP) && !defined(REGISTER)
+ /* Model-independent routine to get 2 bytes from far RAM */
+ 
+-unsigned int mget_word(char FAR *p)
++uint16_t mget_word(char FAR *p)
+ {
+- unsigned int b0, b1;
++ uint16_t b0, b1;
+ 
+  b0=mget_byte(p);
+  b1=mget_byte(p+1);
+@@ -2912,9 +2912,9 @@ unsigned int mget_word(char FAR *p)
+ 
+ /* Model-independent routine to get 4 bytes from far RAM */
+ 
+-unsigned long mget_dword(char FAR *p)
++uint32_t mget_dword(char FAR *p)
+ {
+- unsigned long w0, w1;
++ uint32_t w0, w1;
+ 
+  w0=mget_word(p);
+  w1=mget_word(p+2);
+@@ -2923,7 +2923,7 @@ unsigned long mget_dword(char FAR *p)
+ 
+ /* Model-independent routine to store 2 bytes in far RAM */
+ 
+-void mput_word(unsigned int w, char FAR *p)
++void mput_word(uint16_t w, char FAR *p)
+ {
+  mput_byte(w&0xFF, p);
+  mput_byte(w>>8  , p+1);
+@@ -2931,7 +2931,7 @@ void mput_word(unsigned int w, char FAR 
+ 
+ /* Model-independent routine to store 4 bytes in far RAM */
+ 
+-void mput_dword(unsigned long d, char FAR *p)
++void mput_dword(uint32_t d, char FAR *p)
+ {
+  mput_word(d&0xFFFF, p);
+  mput_word(d>>16   , p+2);
+Index: b/arj_proc.h
+===================================================================
+--- a/arj_proc.h	2008-06-16 08:25:28.000000000 +0300
++++ b/arj_proc.h	2008-06-16 08:25:43.000000000 +0300
+@@ -8,15 +8,17 @@
+ #ifndef ARJ_PROC_INCLUDED
+ #define ARJ_PROC_INCLUDED
+ 
++#include <stdint.h>
++
+ /* Helper macros */
+ 
+-#define mget_byte(p) (*(unsigned char FAR *)(p)&0xFF)
+-#define mput_byte(c, p) *(unsigned char FAR *)(p)=(unsigned char)(c)
++#define mget_byte(p) (*(uint8_t FAR *)(p)&0xFF)
++#define mput_byte(c, p) *(uint8_t FAR *)(p)=(uint8_t)(c)
+ #if !defined(ALIGN_POINTERS) && !defined(WORDS_BIGENDIAN)
+-#define mget_word(p) (*(unsigned short *)(p)&0xFFFF)
+-#define mput_word(w,p) (*(unsigned short *)(p)=(unsigned short)(w))
+-#define mget_dword(p) (*(unsigned long *)(p))
+-#define mput_dword(w,p) (*(unsigned long *)(p)=(unsigned long)(w))
++#define mget_word(p) (*(uint16_t *)(p)&0xFFFF)
++#define mput_word(w,p) (*(uint16_t *)(p)=(uint16_t)(w))
++#define mget_dword(p) (*(uint32_t *)(p))
++#define mput_dword(w,p) (*(uint32_t *)(p)=(uint32_t)(w))
+ #endif
+ 
+ /* Prototypes */
+@@ -31,7 +33,7 @@ void copy_bytes(unsigned long nbytes);
+ int translate_path(char *name);
+ void restart_proc(char *dest);
+ int search_for_extension(char *name, char *ext_list);
+-unsigned long get_volfree(unsigned int increment);
++unsigned long get_volfree(unsigned long increment);
+ unsigned int check_multivolume(unsigned int increment);
+ void store();
+ void hollow_encode();
+@@ -61,10 +63,10 @@ void unpack_mem(struct mempack *mempack)
+ void strip_lf(char *str);
+ char *ltrim(char *str);
+ #if defined(ALIGN_POINTERS) || defined(WORDS_BIGENDIAN)
+-unsigned int mget_word(char FAR *p);
+-unsigned long mget_dword(char FAR *p);
+-void mput_word(unsigned int w, char FAR *p);
+-void mput_dword(unsigned long d, char FAR *p);
++uint16_t mget_word(char FAR *p);
++uint32_t mget_dword(char FAR *p);
++void mput_word(uint16_t w, char FAR *p);
++void mput_dword(uint32_t d, char FAR *p);
+ #endif
+ 
+ #endif
diff --git a/arj-3.10.22-arches_align.patch b/arj-3.10.22-arches_align.patch
new file mode 100644
index 0000000..8411a84
--- /dev/null
+++ b/arj-3.10.22-arches_align.patch
@@ -0,0 +1,38 @@
+Patch by Guillem Jover <guillem at debian.org> for arj <= 3.10.22, which
+fixes unaligned memory accesses.
+
+Index: b/arj_proc.c
+===================================================================
+--- a/arj_proc.c	2005-06-21 22:53:12.000000000 +0300
++++ b/arj_proc.c	2008-06-16 08:25:28.000000000 +0300
+@@ -2898,7 +2898,7 @@ char *ltrim(char *str)
+ }
+ #endif
+ 
+-#if defined(WORDS_BIGENDIAN)&&!defined(ARJDISP)&&!defined(REGISTER)
++#if (defined(WORDS_BIGENDIAN) || defined(ALIGN_POINTERS)) && !defined(ARJDISP) && !defined(REGISTER)
+ /* Model-independent routine to get 2 bytes from far RAM */
+ 
+ unsigned int mget_word(char FAR *p)
+Index: b/arj_proc.h
+===================================================================
+--- a/arj_proc.h	2004-01-25 12:39:30.000000000 +0200
++++ b/arj_proc.h	2008-06-16 08:25:28.000000000 +0300
+@@ -12,7 +12,7 @@
+ 
+ #define mget_byte(p) (*(unsigned char FAR *)(p)&0xFF)
+ #define mput_byte(c, p) *(unsigned char FAR *)(p)=(unsigned char)(c)
+-#ifndef WORDS_BIGENDIAN
++#if !defined(ALIGN_POINTERS) && !defined(WORDS_BIGENDIAN)
+ #define mget_word(p) (*(unsigned short *)(p)&0xFFFF)
+ #define mput_word(w,p) (*(unsigned short *)(p)=(unsigned short)(w))
+ #define mget_dword(p) (*(unsigned long *)(p))
+@@ -60,7 +60,7 @@ void pack_mem(struct mempack *mempack);
+ void unpack_mem(struct mempack *mempack);
+ void strip_lf(char *str);
+ char *ltrim(char *str);
+-#ifdef WORDS_BIGENDIAN
++#if defined(ALIGN_POINTERS) || defined(WORDS_BIGENDIAN)
+ unsigned int mget_word(char FAR *p);
+ unsigned long mget_dword(char FAR *p);
+ void mput_word(unsigned int w, char FAR *p);
diff --git a/arj-3.10.22-doc_refer_robert_k_jung.patch b/arj-3.10.22-doc_refer_robert_k_jung.patch
new file mode 100644
index 0000000..612aecb
--- /dev/null
+++ b/arj-3.10.22-doc_refer_robert_k_jung.patch
@@ -0,0 +1,18 @@
+Patch by Guillem Jover <guillem at debian.org> for arj <= 3.10.22, which
+adds a note to original author Robert K. Jung in the manual page. See
+also http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=456275
+
+Index: b/resource/en/arj.1
+===================================================================
+--- a/resource/en/arj.1	2005-06-21 21:27:20.000000000 +0300
++++ b/resource/en/arj.1	2008-06-16 08:25:47.000000000 +0300
+@@ -21,6 +21,9 @@ arj \- Archiver for .arj files
+ .IR archive [ .arj ]
+ .RI [ "base directory" ]
+ .RI [ "!list name" | "path name" | "wildcard name" ]
++.SH DESCRIPTION
++\fIarj\fP is a compression and file archiving utility. It was invented by
++Robert K. Jung. \fIARJ\fP stands for \fIA\fPrchived by \fIR\fPobert \fIJ\fPung.
+ .SH COMMANDS
+ .TP
+ .B ac
diff --git a/arj-3.10.22-no_remove_static_const.patch b/arj-3.10.22-no_remove_static_const.patch
new file mode 100644
index 0000000..a6763c0
--- /dev/null
+++ b/arj-3.10.22-no_remove_static_const.patch
@@ -0,0 +1,20 @@
+Patch by Guillem Jover <guillem at debian.org> for arj <= 3.10.22, to not
+build integr.o with optimizations, otherwise GCC 4.0 removes the static
+const variable. For further information, please see also Debian tracker
+at http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=318366
+
+---
+ integr.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/integr.c
++++ b/integr.c
+@@ -5,7 +5,7 @@
+  *
+  */
+ 
+-static const char intergrity_identifier[] = {
++static volatile const char intergrity_identifier[] = {
+ 	0xB0, 0x03, 0xB0, 0x02, 0xB0, 0x03,
+ 	0xB0, 0x04, 0xB0, 0x05,
+ 	0x90, 0x90, 0x90, 0x90,
diff --git a/arj-3.10.22-parallel_build.patch b/arj-3.10.22-parallel_build.patch
new file mode 100644
index 0000000..d621694
--- /dev/null
+++ b/arj-3.10.22-parallel_build.patch
@@ -0,0 +1,180 @@
+Patch by Guillem Jover <guillem at debian.org> for arj <= 3.10.22, which
+fixes upstream Makefile to support parallel builds.
+
+---
+ gnu/makefile.in |   74 +++++++++++++++++++++++++++++++++-----------------------
+ 1 file changed, 44 insertions(+), 30 deletions(-)
+
+--- a/gnu/makefile.in
++++ b/gnu/makefile.in
+@@ -159,13 +159,15 @@ $(SFXSTUB_DIR)/%.o: $(SRC_DIR)/%.c
+ # Main dependency tree
+ #
+ 
+-.PHONY: timestamp prepare cleanup package help
++.PHONY: timestamp msg-headers depends prepare clean package help
+ 
+ ifdef COMMERCIAL
+ MAKE_KEY=$(TOOLS_DIR)/make_key$x
+ endif
+ 
+ all:	prepare timestamp
++	$(MAKE) msg-headers
++	$(MAKE) depends
+ 	$(MAKE) do-all
+ 
+ do-all:	\
+@@ -175,8 +177,28 @@ do-all:	\
+ 	$(REGISTER_DIR)/$(REGISTER)$x \
+ 	$(ARJDISP_DIR)/arjdisp$x \
+ 	$(TOOLS_DIR)/packager$x \
+-        $(MAKE_KEY) \
+-	dispose
++	$(MAKE_KEY)
++
++MSG_ID := \
++	msg_crp msg_stb msg_sfv msg_sfx msg_sfj msg_arj msg_rej msg_reg msg_adi
++MSG_HEADERS := $(patsubst %,$(BASEDIR)/%.h,$(MSG_ID))
++
++msg-headers: $(MSG_HEADERS)
++
++.deps:
++	mkdir -p $@
++
++.deps/%.d: %.c .deps
++	$(CC) $(CPPFLAGS) $(COPT) $< -MM > $@
++
++SOURCES = $(wildcard *.c)
++DEPS = $(addprefix .deps/,$(SOURCES:.c=.d))
++
++ifeq ($(sort $(DEPS)),$(sort $(wildcard .deps/*.d)))
++include $(DEPS)
++endif
++
++depends: $(DEPS)
+ 
+ #
+ # Update timestamp file
+@@ -186,12 +208,6 @@ timestamp: $(TOOLS_DIR)/today$x
+ 	$(TOOLS_DIR)/today$x $(LOCALE) $(BASEDIR)
+ 
+ #
+-# Final cleanup
+-#
+-
+-dispose:
+-
+-#
+ # The tools
+ #
+ 
+@@ -255,7 +271,7 @@ $(ARJCRYPT_DIR)/arjcrypt$d: $(ARJCRYPT_O
+ 	$(CC) $(ALL_CFLAGS) $(DLL_FLAGS) -o $@ $(ARJCRYPT_OBJS) $(ARJCRYPT_DEF) $(LIBS)
+ 	$(TOOLS_DIR)/postproc $@
+ 
+-$(BASEDIR)/nmsg_crp.c: $(TOOLS_DIR)/msgbind$x $(RESFILE)
++$(BASEDIR)/nmsg_crp.c $(BASEDIR)/msg_crp.h: $(TOOLS_DIR)/msgbind$x $(RESFILE)
+ 	$(TOOLS_DIR)/msgbind $(RESFILE) msg_crp $(OS_ID) $(PACKAGE) $(LOCALE) $(BASEDIR)
+ 
+ #
+@@ -269,7 +285,7 @@ $(SFXSTUB_DIR)/sfxstub$x: $(SFXSTUB_OBJS
+ 	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(SFXSTUB_OBJS) $(LIBS)
+ 	$(TOOLS_DIR)/postproc$x $@ -sfx
+ 
+-$(BASEDIR)/nmsg_stb.c: $(TOOLS_DIR)/msgbind$x $(RESFILE)
++$(BASEDIR)/nmsg_stb.c $(BASEDIR)/msg_stb.h: $(TOOLS_DIR)/msgbind$x $(RESFILE)
+ 	$(TOOLS_DIR)/msgbind $(RESFILE) msg_stb $(OS_ID) $(PACKAGE) $(LOCALE) $(BASEDIR)
+ 
+ #
+@@ -287,7 +303,8 @@ $(ARJSFXV_DIR)/arjsfxv$x: $(ARJSFXV_OBJS
+ 	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(ARJSFXV_OBJS) $(LIBS) $(DYN_LIBS)
+ 	$(TOOLS_DIR)/postproc$x $@ -sfx
+ 
+-$(BASEDIR)/fmsg_sfv.c $(BASEDIR)/imsg_sfv.c $(BASEDIR)/nmsg_sfv.c: $(TOOLS_DIR)/msgbind$x $(RESFILE)
++$(BASEDIR)/fmsg_sfv.c $(BASEDIR)/imsg_sfv.c $(BASEDIR)/nmsg_sfv.c \
++$(BASEDIR)/msg_sfv.h: $(TOOLS_DIR)/msgbind$x $(RESFILE)
+ 	$(TOOLS_DIR)/msgbind $(RESFILE) msg_sfv $(OS_ID) $(PACKAGE) $(LOCALE) $(BASEDIR)
+ 
+ #
+@@ -304,7 +321,8 @@ $(ARJSFX_DIR)/arjsfx$x: $(ARJSFX_OBJS) $
+ 	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(ARJSFX_OBJS) $(LIBS)
+ 	$(TOOLS_DIR)/postproc$x $@ -sfx
+ 
+-$(BASEDIR)/fmsg_sfx.c $(BASEDIR)/imsg_sfx.c $(BASEDIR)/nmsg_sfx.c: $(TOOLS_DIR)/msgbind$x $(RESFILE)
++$(BASEDIR)/fmsg_sfx.c $(BASEDIR)/imsg_sfx.c $(BASEDIR)/nmsg_sfx.c \
++$(BASEDIR)/msg_sfx.h: $(TOOLS_DIR)/msgbind$x $(RESFILE)
+ 	$(TOOLS_DIR)/msgbind $(RESFILE) msg_sfx $(OS_ID) $(PACKAGE) $(LOCALE) $(BASEDIR)
+ 
+ #
+@@ -319,7 +337,8 @@ $(ARJSFXJR_DIR)/arjsfxjr$x: $(ARJSFXJR_O
+ 	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(ARJSFXJR_OBJS) $(LIBS)
+ 	$(TOOLS_DIR)/postproc$x $@ -sfx
+ 
+-$(BASEDIR)/fmsg_sfj.c $(BASEDIR)/imsg_sfj.c $(BASEDIR)/nmsg_sfj.c: $(TOOLS_DIR)/msgbind$x $(RESFILE)
++$(BASEDIR)/fmsg_sfj.c $(BASEDIR)/imsg_sfj.c $(BASEDIR)/nmsg_sfj.c \
++$(BASEDIR)/msg_sfj.h: $(TOOLS_DIR)/msgbind$x $(RESFILE)
+ 	$(TOOLS_DIR)/msgbind $(RESFILE) msg_sfj $(OS_ID) $(PACKAGE) $(LOCALE) $(BASEDIR)
+ 
+ #
+@@ -354,7 +373,8 @@ $(ARJ_DIR)/arj$x: $(ARJ_OBJS) \
+ 	$(TOOLS_DIR)/join $(ARJ_DIR)/arj$x $(BASEDIR)/help.arj
+ 	$(TOOLS_DIR)/postproc $@
+ 
+-$(BASEDIR)/fmsg_arj.c $(BASEDIR)/imsg_arj.c $(BASEDIR)/nmsg_arj.c: $(TOOLS_DIR)/msgbind$x $(RESFILE)
++$(BASEDIR)/fmsg_arj.c $(BASEDIR)/imsg_arj.c $(BASEDIR)/nmsg_arj.c \
++$(BASEDIR)/msg_arj.h: $(TOOLS_DIR)/msgbind$x $(RESFILE)
+ 	$(TOOLS_DIR)/msgbind $(RESFILE) msg_arj $(OS_ID) $(PACKAGE) $(LOCALE) $(BASEDIR)
+ 
+ #
+@@ -372,7 +392,8 @@ $(REARJ_DIR)/rearj$x: $(REARJ_OBJS) \
+ 	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(REARJ_OBJS) $(LIBS)
+ 	$(TOOLS_DIR)/postproc $@
+ 
+-$(BASEDIR)/fmsg_rej.c $(BASEDIR)/imsg_rej.c $(BASEDIR)/nmsg_rej.c: $(TOOLS_DIR)/msgbind$x $(RESFILE)
++$(BASEDIR)/fmsg_rej.c $(BASEDIR)/imsg_rej.c $(BASEDIR)/nmsg_rej.c \
++$(BASEDIR)/msg_rej.h: $(TOOLS_DIR)/msgbind$x $(RESFILE)
+ 	$(TOOLS_DIR)/msgbind $(RESFILE) msg_rej $(OS_ID) $(PACKAGE) $(LOCALE) $(BASEDIR)
+ 
+ #
+@@ -388,7 +409,8 @@ $(REGISTER_DIR)/$(REGISTER)$x: $(REGISTE
+ 	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(REGISTER_OBJS) $(LIBS)
+ 	$(TOOLS_DIR)/postproc $@ -sfx
+ 
+-$(BASEDIR)/fmsg_reg.c $(BASEDIR)/imsg_reg.c $(BASEDIR)/nmsg_reg.c: $(TOOLS_DIR)/msgbind$x $(RESFILE)
++$(BASEDIR)/fmsg_reg.c $(BASEDIR)/imsg_reg.c $(BASEDIR)/nmsg_reg.c \
++$(BASEDIR)/msg_reg.h: $(TOOLS_DIR)/msgbind$x $(RESFILE)
+ 	$(TOOLS_DIR)/msgbind $(RESFILE) msg_reg $(OS_ID) $(PACKAGE) $(LOCALE) $(BASEDIR)
+ 
+ #
+@@ -402,7 +424,8 @@ ARJDISP_OBJS = $(patsubst %,$(ARJDISP_DI
+ $(ARJDISP_DIR)/arjdisp$x: $(ARJDISP_OBJS)
+ 	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(ARJDISP_OBJS) $(LIBS)
+ 
+-$(BASEDIR)/fmsg_adi.c $(BASEDIR)/imsg_adi.c $(BASEDIR)/nmsg_adi.c: $(TOOLS_DIR)/msgbind$x $(RESFILE)
++$(BASEDIR)/fmsg_adi.c $(BASEDIR)/imsg_adi.c $(BASEDIR)/nmsg_adi.c \
++$(BASEDIR)/msg_adi.h: $(TOOLS_DIR)/msgbind$x $(RESFILE)
+ 	$(TOOLS_DIR)/msgbind $(RESFILE) msg_adi $(OS_ID) $(PACKAGE) $(LOCALE) $(BASEDIR)
+ 
+ #
+@@ -427,18 +450,9 @@ prepare:
+ #
+ 
+ clean:
+-	-rm -f $(BASEDIR)/*
+-	-rm -f $(TOOLS_DIR)/*
+-	-rm -f $(ARJCRYPT_DIR)/*
+-	-rm -f $(SFXSTUB_DIR)/*
+-	-rm -f $(ARJSFXV_DIR)/*
+-	-rm -f $(ARJSFX_DIR)/*
+-	-rm -f $(ARJSFXJR_DIR)/*
+-	-rm -f $(ARJ_DIR)/*
+-	-rm -f $(REARJ_DIR)/*
+-	-rm -f $(REGISTER_DIR)/*
+-	-rm -f $(ARJDISP_DIR)/*
+-	-rm -f arj.core
++	rm -rf .deps
++	rm -rf $(BASEDIR)
++	rm -f arj.core
+ 
+ #
+ # Local installation
diff --git a/arj-3.10.22-quotes.patch b/arj-3.10.22-quotes.patch
index fa57afc..699890c 100644
--- a/arj-3.10.22-quotes.patch
+++ b/arj-3.10.22-quotes.patch
@@ -1,22 +1,22 @@
---- arj-3.10.22/makefile.orig	2009-09-07 07:50:22.000000000 +0200
-+++ arj-3.10.22/makefile	2009-09-07 07:50:32.000000000 +0200
-@@ -1633,7 +1633,7 @@
+Patch by Milos Jakubicek <xjakub at fi.muni.cz> for arj <= 3.10.22 to fix FTBFS
+
+--- arj-3.10.22/makefile			2004-06-18 18:19:36.000000000 +0200
++++ arj-3.10.22/makefile.quotes			2013-10-20 00:49:07.000000000 +0200
+@@ -1633,6 +1633,7 @@
   $(CC) $(ARJ_COPT)
  $(BASEDIR)\fmsg_arj.c $(BASEDIR)\imsg_arj.c $(BASEDIR)\nmsg_arj.c: $(BASEDIR)\tools\$(MSGBIND) $(RESFILE)
   $(BASEDIR)\tools\msgbind $(RESFILE) msg_arj $(OS_ID) $(PACKAGE) $(LOCALE) $(BASEDIR)
--
-+ sed -i 's|_""|\\""|' $(BASEDIR)/fmsg_arj.c
++ sed -e 's|_""|\\""|' -i $(BASEDIR)/fmsg_arj.c
+ 
  #
  # REARJ utility
- #
---- arj-3.10.22/gnu/makefile.in.orig	2004-04-17 13:28:06.000000000 +0200
-+++ arj-3.10.22/gnu/makefile.in	2009-09-07 07:58:42.000000000 +0200
-@@ -356,7 +356,7 @@
- 
- $(BASEDIR)/fmsg_arj.c $(BASEDIR)/imsg_arj.c $(BASEDIR)/nmsg_arj.c: $(TOOLS_DIR)/msgbind$x $(RESFILE)
+--- arj-3.10.22/gnu/makefile.in			2013-10-20 00:47:38.000000000 +0200
++++ arj-3.10.22/gnu/makefile.in.quotes		2013-10-20 00:50:20.000000000 +0200
+@@ -376,6 +376,7 @@
+ $(BASEDIR)/fmsg_arj.c $(BASEDIR)/imsg_arj.c $(BASEDIR)/nmsg_arj.c \
+ $(BASEDIR)/msg_arj.h: $(TOOLS_DIR)/msgbind$x $(RESFILE)
  	$(TOOLS_DIR)/msgbind $(RESFILE) msg_arj $(OS_ID) $(PACKAGE) $(LOCALE) $(BASEDIR)
--
-+	sed -i 's|_""|\\""|' $(BASEDIR)/fmsg_arj.c
++	sed -e 's|_""|\\""|' -i $(BASEDIR)/fmsg_arj.c
+ 
  #
  # REARJ utility
- #
diff --git a/arj-3.10.22-security_format.patch b/arj-3.10.22-security_format.patch
new file mode 100644
index 0000000..98c1814
--- /dev/null
+++ b/arj-3.10.22-security_format.patch
@@ -0,0 +1,305 @@
+Patch by Guillem Jover <guillem at debian.org> for arj <= 3.10.22, which
+fixes format security errors.
+
+---
+ arj_arcv.c |   12 ++++++------
+ arj_user.c |    8 ++++----
+ arjdisp.c  |   58 ++++++++++++++++++++++++++++------------------------------
+ arjsfx.c   |    2 +-
+ fardata.c  |   10 +++++-----
+ rearj.c    |    2 +-
+ register.c |    2 +-
+ 7 files changed, 46 insertions(+), 48 deletions(-)
+
+--- a/fardata.c
++++ b/fardata.c
+@@ -52,7 +52,7 @@ int error_proc(FMSG *errmsg, ...)
+   /* Check if the message could have a standard error code */
+   if(errno!=0&&is_std_error(errmsg))
+   {
+-   msg_cprintf(0, lf);
++   msg_cprintf(0, "\n");
+    error_report();
+   }
+  #endif
+@@ -379,10 +379,10 @@ static void flush_cbuf(int ccode, char *
+     {
+      #if SFX_LEVEL>=ARJSFXV
+       fprintf(new_stdout, strform, n_text);
+-      fprintf(new_stdout, lf);
++      fprintf(new_stdout, "\n");
+      #else
+       printf(strform, n_text);
+-      printf(lf);
++      printf("\n");
+      #endif
+     }
+     else
+@@ -393,13 +393,13 @@ static void flush_cbuf(int ccode, char *
+      #ifdef NEED_CRLF
+       scr_out("\r");
+      #endif
+-     scr_out(lf);
++     scr_out("\n");
+     }
+     if(!no_colors)
+      textcolor(color_table[ccode&H_COLORMASK].color);
+    #else
+     printf(strform, n_text);
+-    printf(lf);
++    printf("\n");
+    #endif
+    n_text=t_text+1;
+    #if SFX_LEVEL>=ARJ
+--- a/arj_user.c
++++ b/arj_user.c
+@@ -1059,7 +1059,7 @@ static void finish_processing(int cmd)
+      if(recover_file(tmp_archive_name, nullstr, tmp_tmp_filename, protected, eof_pos))
+      {
+       msg_cprintf(H_HL, M_CANT_FIND_DAMAGE, archive_name);
+-      printf(lf);
++      printf("\n");
+      }
+      else
+      {
+@@ -1294,7 +1294,7 @@ static void finish_processing(int cmd)
+    if(recover_file(archive_name, nullstr, nullstr, protected, eof_pos))
+    {
+     msg_cprintf(H_HL, M_CANT_FIND_DAMAGE, archive_name);
+-    printf(lf);
++    printf("\n");
+    }
+    else
+    {
+@@ -1327,7 +1327,7 @@ static void finish_processing(int cmd)
+     msg_cprintf(0, M_CHAPTERS_ON);
+    else if(chapter_mode==CHAP_REMOVE)
+     msg_cprintf(0, M_CHAPTERS_OFF);
+-   msg_cprintf(0, strform, lf);
++   msg_cprintf(0, strform, "\n");
+   }
+   if(cmd==ARJ_CMD_COPY&&protfile_option&&!arjprot_tail)
+    msg_cprintf(0, M_ARJPROT_DISABLED);
+@@ -2303,7 +2303,7 @@ void process_archive()
+   timestamp_to_str(timetext, &ftime_stamp);
+   msg_cprintf(H_HL|H_NFMT, M_ARCHIVE_CREATED, timetext);
+   if(show_ansi_comments)
+-   printf(cmt_ptr);
++   fputs(cmt_ptr, stdout);
+   else
+    display_comment(cmt_ptr);
+   /* The sfx_setup() occurs here */
+--- a/arj_arcv.c
++++ b/arj_arcv.c
+@@ -913,13 +913,13 @@ int supply_comment(char *cmtname, char *
+     else
+     {
+      strcat(tmp_comment, tmp_cmtline);
+-     strcat(tmp_comment, lf);
++     strcat(tmp_comment, "\n");
+     }
+    }
+    else
+    {
+     strcat(tmp_comment, tmp_cmtline);
+-    strcat(tmp_comment, lf);
++    strcat(tmp_comment, "\n");
+    }
+   }
+  }
+@@ -1846,7 +1846,7 @@ int pack_file(int is_update, int is_repl
+    raw_eh=eh_lookup(eh, UXSPECIAL_ID)->raw;
+    uxspecial_stats(raw_eh, UXSTATS_SHORT);
+   }
+-  msg_cprintf(0, lf);
++  msg_cprintf(0, "\n");
+  }
+  if(err_id==0&&user_wants_fail)
+  {
+@@ -2523,9 +2523,9 @@ int unpack_validation()
+    {
+     msg_cprintf(0, (FMSG *)strform, misc_buf);
+     if(search_mode==SEARCH_DEFAULT)
+-     msg_cprintf(0, (FMSG *)lf);
++     msg_cprintf(0, "\n");
+     if(search_mode==SEARCH_BRIEF)
+-     msg_cprintf(0, (FMSG *)cr);
++     msg_cprintf(0, "\r");
+    }
+    for(pattern=0; pattern<SEARCH_STR_MAX; search_occurences[pattern++]=0);
+    reserve_size=0;
+@@ -3652,7 +3652,7 @@ void archive_cleanup()
+  {
+   if(msg_fprintf(idxstream, M_TESTING, archive_name)<0)
+    error(M_DISK_FULL);
+-  if(fprintf(idxstream, lf)<0)
++  if(fprintf(idxstream, "\n")<0)
+    error(M_DISK_FULL);
+  }
+  cmd_verb=ARJ_CMD_TEST;
+--- a/arjsfx.c
++++ b/arjsfx.c
+@@ -214,7 +214,7 @@ static void final_cleanup(void)
+   freopen(dev_con, m_w, stdout);
+  #if SFX_LEVEL>=ARJSFXV
+   if(ferror(stdout))
+-   msg_fprintf(stderr, M_DISK_FULL);
++   msg_fprintf(stderr, "Can't write file. Disk full?");
+   if(debug_enabled&&strchr(debug_opt, 't')!=NULL)
+   {
+    ticks=get_ticks()-ticks;
+--- a/rearj.c
++++ b/rearj.c
+@@ -935,7 +935,7 @@ static int convert_archive(char *name)
+  msg_cprintf(H_HL|H_NFMT, M_OLD_SIZE, old_fsize);
+  msg_cprintf(H_HL|H_NFMT, M_NEW_SIZE, new_fsize);
+  msg_cprintf(H_HL|H_NFMT, M_SAVINGS_SIZE, gain);
+- printf(lf);
++ printf("\n");
+  total_old_fsize+=old_fsize;
+  total_new_fsize+=new_fsize;
+  total_files++;
+--- a/register.c
++++ b/register.c
+@@ -205,7 +205,7 @@ int main(int argc, char **argv)
+  char reg_source[200];
+  int i;
+ 
+- printf(M_REGISTER_BANNER);
++ fputs(M_REGISTER_BANNER, stdout);
+  integrity_pattern[0]--;
+  build_crc32_table();
+  if(argc!=2)
+--- a/arjdisp.c
++++ b/arjdisp.c
+@@ -20,8 +20,6 @@ static long bytes;
+ static long compsize;
+ static char cmd_verb;
+ static char msg_lf[]="\n";
+-char strform[]="%s";                    /* Export it for scrnio.c, too
+-                                           (a byte saved is a byte gained) */
+ 
+ /* Pseudographical controls */
+ 
+@@ -54,19 +52,19 @@ static void show_init_scrn()
+  textcolor(7);
+  clrscr();
+  gotoxy(2, 2);
+- scrprintf(win_top);
++ fputs(win_top, stdout);
+  for(i=3; i<24; i++)
+  {
+-  gotoxy(2, i); scrprintf(win_border);
+-  gotoxy(79, i); scrprintf(win_border);
++  gotoxy(2, i); fputs(win_border, stdout);
++  gotoxy(79, i); fputs(win_border, stdout);
+  }
+- gotoxy(2, 24); scrprintf(win_bottom);
++ gotoxy(2, 24); fputs(win_bottom, stdout);
+  gotoxy(10, 5);
+- scrprintf(M_ARJDISP_COPYRIGHT);
++ fputs(M_ARJDISP_COPYRIGHT, stdout);
+  gotoxy(10, 6);
+- scrprintf(M_ARJDISP_DISTRIBUTION);
++ fputs(M_ARJDISP_DISTRIBUTION, stdout);
+  gotoxy(10, 7);
+- scrprintf(M_ARJDISP_LICENSE);
++ fputs(M_ARJDISP_LICENSE, stdout);
+  gotoxy(16, 10);
+  scrprintf(M_PROCESSING_ARCHIVE, archive_name);
+  t=strtok(M_ARJDISP_INFO, msg_lf);
+@@ -74,11 +72,11 @@ static void show_init_scrn()
+  while(t!=NULL&&i<=23)
+  {
+   gotoxy(10, i++);
+-  scrprintf(strform, t);
++  scrprintf("%s", t);
+   t=strtok(NULL, msg_lf);
+  }
+  gotoxy(16, 20);
+- scrprintf(M_PRESS_ANY_KEY);
++ fputs(M_PRESS_ANY_KEY, stdout);
+  uni_getch();
+  gotoxy(1, 24);
+ }
+@@ -96,19 +94,19 @@ static void show_proc_scrn()
+  {
+   clrscr();
+   gotoxy(2, 2);
+-  scrprintf(win_top);
++  fputs(win_top, stdout);
+   for(i=3; i<24; i++)
+   {
+-   gotoxy(2, i); scrprintf(win_border);
+-   gotoxy(79, i); scrprintf(win_border);
++   gotoxy(2, i); fputs(win_border, stdout);
++   gotoxy(79, i); fputs(win_border, stdout);
+   }
+-  gotoxy(2, 24); scrprintf(win_bottom);
++  gotoxy(2, 24); fputs(win_bottom, stdout);
+   gotoxy(10, 5);
+-  scrprintf(M_ARJDISP_COPYRIGHT);
++  fputs(M_ARJDISP_COPYRIGHT, stdout);
+   gotoxy(10, 6);
+-  scrprintf(M_ARJDISP_DISTRIBUTION);
++  fputs(M_ARJDISP_DISTRIBUTION, stdout);
+   gotoxy(10, 7);
+-  scrprintf(M_ARJDISP_LICENSE);
++  fputs(M_ARJDISP_LICENSE, stdout);
+   gotoxy(16, 10);
+   scrprintf(M_PROCESSING_ARCHIVE, archive_name);
+   gotoxy(16, 12);
+@@ -132,13 +130,13 @@ static void show_proc_scrn()
+     break;
+   }
+   gotoxy(15, 14);
+-  scrprintf(ind_top);
++  fputs(ind_top, stdout);
+   gotoxy(15, 15);
+-  scrprintf(ind_middle);
++  fputs(ind_middle, stdout);
+   gotoxy(15, 16);
+-  scrprintf(ind_bottom);
++  fputs(ind_bottom, stdout);
+   gotoxy(16, 18);
+-  scrprintf(M_ARJDISP_CTR_START);
++  fputs(M_ARJDISP_CTR_START, stdout);
+  }
+  else
+  {
+@@ -146,7 +144,7 @@ static void show_proc_scrn()
+   gotoxy(16, 15);
+   memset(progress, indo, i);
+   progress[i]='\0';
+-  scrprintf(progress);
++  fputs(progress, stdout);
+   gotoxy(16, 18);
+   scrprintf(M_ARJDISP_CTR, calc_percentage(bytes, uncompsize)/10);
+  }
+@@ -165,19 +163,19 @@ static void show_ending_scrn()
+  textcolor(7);
+  clrscr();
+  gotoxy(2, 2);
+- scrprintf(win_top);
++ fputs(win_top, stdout);
+  for(i=3; i<24; i++)
+  {
+-  gotoxy(2, i); scrprintf(win_border);
+-  gotoxy(79, i); scrprintf(win_border);
++  gotoxy(2, i); fputs(win_border, stdout);
++  gotoxy(79, i); fputs(win_border, stdout);
+  }
+- gotoxy(2, 24); scrprintf(win_bottom);
++ gotoxy(2, 24); fputs(win_bottom, stdout);
+  gotoxy(10, 5);
+- scrprintf(M_ARJDISP_COPYRIGHT);
++ fputs(M_ARJDISP_COPYRIGHT, stdout);
+  gotoxy(10, 6);
+- scrprintf(M_ARJDISP_DISTRIBUTION);
++ fputs(M_ARJDISP_DISTRIBUTION, stdout);
+  gotoxy(10, 7);
+- scrprintf(M_ARJDISP_LICENSE);
++ fputs(M_ARJDISP_LICENSE, stdout);
+  gotoxy(16, 10);
+  scrprintf(M_FINISHED_PROCESSING, archive_name);
+  gotoxy(1, 24);
diff --git a/arj-3.10.22-use_safe_strcpy.patch b/arj-3.10.22-use_safe_strcpy.patch
new file mode 100644
index 0000000..3d72f26
--- /dev/null
+++ b/arj-3.10.22-use_safe_strcpy.patch
@@ -0,0 +1,97 @@
+Patch by Guillem Jover <guillem at debian.org> for arj <= 3.10.22, to
+use a safe strcpy for overlapping strings, among others fixes a build
+problem with a mangled generated .c file by msgbind (thus FTBFS), and
+CRC errors at run-time. For further information, please have a look
+to http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=590354
+
+---
+ arj.c      |    2 +-
+ arjdata.c  |    9 +--------
+ ea_mgr.c   |    2 +-
+ misc.h     |    4 ++++
+ msgbind.c  |    2 +-
+ packager.c |    2 +-
+ 6 files changed, 9 insertions(+), 12 deletions(-)
+
+--- a/arjdata.c
++++ b/arjdata.c
+@@ -204,13 +204,6 @@ void date_fmt(char *dest)
+  #endif
+ }
+ 
+-/* A safe strcpy() */
+-
+-static void safe_strcpy(char *dest, char *src)
+-{
+- memmove(dest, src, strlen(src)+1);
+-}
+-
+ /* Context substitution routine */
+ 
+ char *expand_tags(char *str, int limit)
+@@ -232,7 +225,7 @@ char *expand_tags(char *str, int limit)
+   {
+    if(*(p+1)==TAG_CHAR)
+    {
+-    strcpy(p, p+1);
++    safe_strcpy(p, p+1);
+     p++;
+    }
+    else if(*(p+1)==TAG_SPECIAL_BEGIN&&(et=strchr(p+3, TAG_SPECIAL_END))!=NULL)
+--- a/arj.c
++++ b/arj.c
+@@ -1169,7 +1169,7 @@ int main(int argc, char *argv[])
+      if(strlen(tmp_ptr)<=121)
+       tmp_ptr[0]='\0';
+      else if(tmp_ptr[120]==' ')
+-      strcpy(tmp_ptr, tmp_ptr+121);
++      safe_strcpy(tmp_ptr, tmp_ptr+121);
+     }
+     if(cmd==ARJ_CMD_ORDER&&strpbrk(tmp_ptr, wildcard_pattern)!=NULL)
+      error(M_ORDER_WILDCARD);
+--- a/ea_mgr.c
++++ b/ea_mgr.c
+@@ -696,7 +696,7 @@ int resolve_longname(char *dest, char *n
+     tmp_name[st_len]='\0';
+     if(tmp_name[0]==0xFD&&tmp_name[1]==0xFF)
+     {
+-     strcpy(tmp_name, (char *)tmp_name+4);
++     safe_strcpy(tmp_name, (char *)tmp_name+4);
+      st_len-=4;
+     }
+     if(st_len==0||st_len+entry>=FILENAME_MAX)
+--- a/msgbind.c
++++ b/msgbind.c
+@@ -578,7 +578,7 @@ int main(int argc, char **argv)
+    }
+    strcat(pool[tpool].data, msgname);
+    strcat(pool[tpool].data, ", ");
+-   strcpy(msg_buffer, msg_buffer+1);
++   safe_strcpy(msg_buffer, msg_buffer+1);
+    buf_len=strlen(msg_buffer);
+    msg_buffer[--buf_len]='\0';
+    patch_string(msg_buffer);
+--- a/packager.c
++++ b/packager.c
+@@ -347,7 +347,7 @@ int main(int argc, char **argv)
+  expand_tags(buf, sizeof(buf)-1);
+  if((p=strchr(buf, '.'))!=NULL)
+  {
+-  strcpy(p, p+1);
++  safe_strcpy(p, p+1);
+   if((p=strchr(buf, '.'))!=NULL)
+    *p='\0';
+  }
+--- a/misc.h
++++ b/misc.h
+@@ -11,6 +11,10 @@
+ #include "arjtypes.h"
+ #include "filelist.h"
+ 
++/* A safe strcpy() */
++
++#define safe_strcpy(dest, src) memmove(dest, src, strlen(src)+1);
++
+ /* ASCIIZ string copy macro */
+ 
+ #define strcpyn(dest, src, n)      \
diff --git a/arj.spec b/arj.spec
index 3622ddb..d35ffe0 100644
--- a/arj.spec
+++ b/arj.spec
@@ -1,7 +1,7 @@
 Summary:	Archiver for .arj files
 Name:		arj
 Version:	3.10.22
-Release:	17%{?dist}
+Release:	18%{?dist}
 License:	GPL+
 Group:		Applications/Archiving
 URL:		http://arj.sourceforge.net/
@@ -9,11 +9,17 @@ Source0:	http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz
 # unarj.* from Debian
 Source1:	unarj.sh
 Source2:	unarj.1
-Patch0:		http://ftp.debian.org/debian/pool/main/a/%{name}/%{name}_%{version}-6.diff.gz
-Patch1:		arj-3.10.22-missing-protos.patch
-Patch2:		arj-3.10.22-custom-printf.patch
+Patch0:		arj-3.10.22-arches_align.patch
+Patch1:		arj-3.10.22-no_remove_static_const.patch
+Patch2:		arj-3.10.22-64_bit_clean.patch
+Patch3:		arj-3.10.22-parallel_build.patch
+Patch4:		arj-3.10.22-use_safe_strcpy.patch
+Patch5:		arj-3.10.22-doc_refer_robert_k_jung.patch
+Patch6:		arj-3.10.22-security_format.patch
+Patch7:		arj-3.10.22-missing-protos.patch
+Patch8:		arj-3.10.22-custom-printf.patch
 # Filed into upstream bugtracker as https://sourceforge.net/tracker/?func=detail&aid=2853421&group_id=49820&atid=457566
-Patch3:		arj-3.10.22-quotes.patch
+Patch9:		arj-3.10.22-quotes.patch
 BuildRequires:	autoconf
 Provides:	unarj = %{version}-%{release}
 Obsoletes:	unarj < 3
@@ -31,10 +37,12 @@ Software, Inc.
 %patch1 -p1
 %patch2 -p1
 %patch3 -p1
-
-for i in debian/patches/00*.patch; do
-  patch -p1 < $i
-done
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
+%patch7 -p1
+%patch8 -p1
+%patch9 -p1
 
 pushd gnu
   autoconf
@@ -52,9 +60,9 @@ make %{?_smp_mflags} ADD_LDFLAGS=""
 rm -rf $RPM_BUILD_ROOT
 make DESTDIR=$RPM_BUILD_ROOT install
 
-install -Dpm 644 resource/rearj.cfg.example $RPM_BUILD_ROOT%{_sysconfdir}/rearj.cfg
-install -pm 755 %{SOURCE1} $RPM_BUILD_ROOT%{_bindir}/unarj
-install -pm 644 %{SOURCE2} $RPM_BUILD_ROOT%{_mandir}/man1/unarj.1
+install -D -p -m 644 resource/rearj.cfg.example $RPM_BUILD_ROOT%{_sysconfdir}/rearj.cfg
+install -p -m 755 %{SOURCE1} $RPM_BUILD_ROOT%{_bindir}/unarj
+install -p -m 644 %{SOURCE2} $RPM_BUILD_ROOT%{_mandir}/man1/unarj.1
 
 # remove the register remainders of arj's sharewares time
 rm -f $RPM_BUILD_ROOT%{_bindir}/arj-register
@@ -64,7 +72,7 @@ rm -f $RPM_BUILD_ROOT%{_mandir}/man1/arj-register.1*
 rm -rf $RPM_BUILD_ROOT
 
 %files
-%defattr(-,root,root)
+%defattr(-,root,root,-)
 %doc ChangeLog* doc/COPYING doc/rev_hist.txt
 %config(noreplace) %{_sysconfdir}/rearj.cfg
 %{_bindir}/*arj*
@@ -72,6 +80,9 @@ rm -rf $RPM_BUILD_ROOT
 %{_mandir}/man1/*arj*1.*
 
 %changelog
+* Sun Oct 20 2013 Robert Scheck <robert at fedoraproject.org> 3.10.22-18
+- Replaced compressed Debian patch file by regular patches
+
 * Sat Aug 03 2013 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 3.10.22-17
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
 
diff --git a/sources b/sources
index fe07d0b..4639b7b 100644
--- a/sources
+++ b/sources
@@ -1,2 +1 @@
 f263bf3cf6d42a8b7e85b4fb514336d3  arj-3.10.22.tar.gz
-a34dbdd46d09248b4fd03d7d4faf3e30  arj_3.10.22-6.diff.gz
-- 
cgit v0.10.2


>From f3028ce21975a0a364d04e3e7b88f29c71dc0f1f Mon Sep 17 00:00:00 2001
From: Dennis Gilmore <dennis at ausil.us>
Date: Fri, 6 Jun 2014 20:24:23 -0500
Subject: - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild


diff --git a/arj.spec b/arj.spec
index d35ffe0..f313fdc 100644
--- a/arj.spec
+++ b/arj.spec
@@ -1,7 +1,7 @@
 Summary:	Archiver for .arj files
 Name:		arj
 Version:	3.10.22
-Release:	18%{?dist}
+Release:	19%{?dist}
 License:	GPL+
 Group:		Applications/Archiving
 URL:		http://arj.sourceforge.net/
@@ -80,6 +80,9 @@ rm -rf $RPM_BUILD_ROOT
 %{_mandir}/man1/*arj*1.*
 
 %changelog
+* Sat Jun 07 2014 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 3.10.22-19
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
+
 * Sun Oct 20 2013 Robert Scheck <robert at fedoraproject.org> 3.10.22-18
 - Replaced compressed Debian patch file by regular patches
 
-- 
cgit v0.10.2


>From 04e8337662ad8bcf262f3ec42c2e1cd804433629 Mon Sep 17 00:00:00 2001
From: Peter Robinson <pbrobinson at fedoraproject.org>
Date: Fri, 15 Aug 2014 20:56:51 +0000
Subject: - Rebuilt for
 https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild


diff --git a/arj.spec b/arj.spec
index f313fdc..5495a62 100644
--- a/arj.spec
+++ b/arj.spec
@@ -1,7 +1,7 @@
 Summary:	Archiver for .arj files
 Name:		arj
 Version:	3.10.22
-Release:	19%{?dist}
+Release:	20%{?dist}
 License:	GPL+
 Group:		Applications/Archiving
 URL:		http://arj.sourceforge.net/
@@ -80,6 +80,9 @@ rm -rf $RPM_BUILD_ROOT
 %{_mandir}/man1/*arj*1.*
 
 %changelog
+* Fri Aug 15 2014 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 3.10.22-20
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
+
 * Sat Jun 07 2014 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 3.10.22-19
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
 
-- 
cgit v0.10.2


>From 550c1ebdbf30c667ea57b8ef196e0add453d1d16 Mon Sep 17 00:00:00 2001
From: Till Maas <opensource at till.name>
Date: Sat, 21 Feb 2015 22:21:19 +0100
Subject: Rebuilt for Fedora 23 Change

  https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-independent_code

diff --git a/arj.spec b/arj.spec
index 5495a62..f614a41 100644
--- a/arj.spec
+++ b/arj.spec
@@ -1,7 +1,7 @@
 Summary:	Archiver for .arj files
 Name:		arj
 Version:	3.10.22
-Release:	20%{?dist}
+Release:	21%{?dist}
 License:	GPL+
 Group:		Applications/Archiving
 URL:		http://arj.sourceforge.net/
@@ -80,6 +80,10 @@ rm -rf $RPM_BUILD_ROOT
 %{_mandir}/man1/*arj*1.*
 
 %changelog
+* Sat Feb 21 2015 Till Maas <opensource at till.name> - 3.10.22-21
+- Rebuilt for Fedora 23 Change
+  https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-independent_code
+
 * Fri Aug 15 2014 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 3.10.22-20
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
 
-- 
cgit v0.10.2


>From 097f276de931e340747d450aa190a463621a701c Mon Sep 17 00:00:00 2001
From: Robert Scheck <robert at fedoraproject.org>
Date: Fri, 3 Apr 2015 15:58:14 +0200
Subject: - Added patch from Debian to avoid free on invalid pointer due to a
 buffer overflow (#1196751, #1207180) - Added patch from Debian for symlink
 directory traversal (#1178824) - Added patch from Debian to fix the directory
 traversal via //multiple/leading/slash (#1178824)


diff --git a/arj-3.10.22-security-afl.patch b/arj-3.10.22-security-afl.patch
new file mode 100644
index 0000000..ed2bf57
--- /dev/null
+++ b/arj-3.10.22-security-afl.patch
@@ -0,0 +1,35 @@
+Description: Fix buffer overflow causing an invalid pointer free().
+Author: Guillem Jover <guillem at debian.org>
+Origin: vendor
+Bug-Debian: https://bugs.debian.org/774015
+Forwarded: no
+Last-Update: 2015-02-26
+
+---
+ decode.c |    6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+--- a/decode.c
++++ b/decode.c
+@@ -255,7 +255,7 @@ void read_pt_len(int nn, int nbit, int i
+    if(i==i_special)
+    {
+     c=getbits(2);
+-    while(--c>=0)
++    while(--c>=0&&i<nn)
+      pt_len[i++]=0;
+    }
+   }
+@@ -314,10 +314,10 @@ void read_c_len()
+      c=getbits(CBIT);
+      c+=20;
+     }
+-    while(--c>=0)
++    while(--c>=0&&i<NC)
+      c_len[i++]=0;
+    }
+-   else
++   else if (i<NC)
+     c_len[i++]=(unsigned char)(c-2);
+   }
+   while(i<NC)
diff --git a/arj-3.10.22-security-traversal-dir.patch b/arj-3.10.22-security-traversal-dir.patch
new file mode 100644
index 0000000..02d955c
--- /dev/null
+++ b/arj-3.10.22-security-traversal-dir.patch
@@ -0,0 +1,33 @@
+Description: Fix absolute path traversals.
+ Catch multiple leading slashes when checking for absolute path traversals.
+ .
+ Fixes CVE-2015-0557.
+Author: Guillem Jover <guillem at debian.org>
+Origin: vendor
+Bug-Debian: https://bugs.debian.org/774435
+Forwarded: no
+Last-Update: 2015-02-26
+
+---
+ environ.c |    3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/environ.c
++++ b/environ.c
+@@ -1087,6 +1087,8 @@ static char *validate_path(char *name)
+   if(action!=VALIDATE_DRIVESPEC)
+   {
+ #endif
++   while (name[0]!='\0'&&
++          (name[0]=='.'||name[0]==PATHSEP_DEFAULT||name[0]==PATHSEP_UNIX)) {
+    if(name[0]=='.')
+    {
+     if(name[1]=='.'&&(name[2]==PATHSEP_DEFAULT||name[2]==PATHSEP_UNIX))
+@@ -1096,6 +1098,7 @@ static char *validate_path(char *name)
+    }
+    if(name[0]==PATHSEP_DEFAULT||name[0]==PATHSEP_UNIX)
+     name++;                             /* "\\" - revert to root */
++   }
+ #if SFX_LEVEL>=ARJSFXV
+   }
+  }
diff --git a/arj-3.10.22-security-traversal-symlink.patch b/arj-3.10.22-security-traversal-symlink.patch
new file mode 100644
index 0000000..3248169
--- /dev/null
+++ b/arj-3.10.22-security-traversal-symlink.patch
@@ -0,0 +1,85 @@
+Description: Fix symlink directory traversal.
+ Do not allow symlinks that traverse the current directoru, nor absolute
+ symlinks.
+ .
+ Fixes CVE-2015-0556.
+Author: Guillem Jover <guillem at debian.org>
+Origin: vendor
+Bug-Debian: https://bugs.debian.org/774434
+Forwarded: no
+Last-Update: 2015-03-28
+
+---
+ uxspec.c |   54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 54 insertions(+)
+
+--- a/uxspec.c
++++ b/uxspec.c
+@@ -120,6 +120,58 @@ int query_uxspecial(char FAR **dest, cha
+ }
+ #endif
+ 
++#if TARGET==UNIX
++static int is_link_traversal(const char *name)
++{
++  enum {
++    STATE_NONE,
++    STATE_DOTS,
++    STATE_NAME,
++  } state = STATE_NONE;
++  int ndir = 0;
++  int dots = 0;
++
++  while(*name) {
++    int c = *name++;
++
++    if (c == '/')
++    {
++      if ((state == STATE_DOTS) && (dots == 2))
++        ndir--;
++      if (ndir < 0)
++        return 1;
++      if ((state == STATE_DOTS && dots == 1) && ndir == 0)
++        return 1;
++      if (state == STATE_NONE && ndir == 0)
++        return 1;
++      if ((state == STATE_DOTS) && (dots > 2))
++        ndir++;
++      state = STATE_NONE;
++      dots = 0;
++    }
++    else if (c == '.')
++    {
++      if (state == STATE_NONE)
++        state = STATE_DOTS;
++      dots++;
++    }
++    else
++    {
++      if (state == STATE_NONE)
++        ndir++;
++      state = STATE_NAME;
++    }
++  }
++
++  if ((state == STATE_DOTS) && (dots == 2))
++    ndir--;
++  if ((state == STATE_DOTS) && (dots > 2))
++    ndir++;
++
++  return ndir < 0;
++}
++#endif
++
+ /* Restores the UNIX special file data */
+ 
+ int set_uxspecial(char FAR *storage, char *name)
+@@ -156,6 +208,8 @@ int set_uxspecial(char FAR *storage, cha
+      l=sizeof(tmp_name)-1;
+     far_memmove((char FAR *)tmp_name, dptr, l);
+     tmp_name[l]='\0';
++    if (is_link_traversal(tmp_name))
++      return(UXSPEC_RC_ERROR);
+     rc=(id==UXSB_HLNK)?link(tmp_name, name):symlink(tmp_name, name);
+     if(!rc)
+      return(0);
diff --git a/arj.spec b/arj.spec
index f614a41..3e7f0d6 100644
--- a/arj.spec
+++ b/arj.spec
@@ -1,7 +1,7 @@
 Summary:	Archiver for .arj files
 Name:		arj
 Version:	3.10.22
-Release:	21%{?dist}
+Release:	22%{?dist}
 License:	GPL+
 Group:		Applications/Archiving
 URL:		http://arj.sourceforge.net/
@@ -20,6 +20,9 @@ Patch7:		arj-3.10.22-missing-protos.patch
 Patch8:		arj-3.10.22-custom-printf.patch
 # Filed into upstream bugtracker as https://sourceforge.net/tracker/?func=detail&aid=2853421&group_id=49820&atid=457566
 Patch9:		arj-3.10.22-quotes.patch
+Patch10:        arj-3.10.22-security-afl.patch
+Patch11:        arj-3.10.22-security-traversal-dir.patch
+Patch12:        arj-3.10.22-security-traversal-symlink.patch
 BuildRequires:	autoconf
 Provides:	unarj = %{version}-%{release}
 Obsoletes:	unarj < 3
@@ -43,6 +46,9 @@ Software, Inc.
 %patch7 -p1
 %patch8 -p1
 %patch9 -p1
+%patch10 -p1
+%patch11 -p1
+%patch12 -p1
 
 pushd gnu
   autoconf
@@ -73,13 +79,22 @@ rm -rf $RPM_BUILD_ROOT
 
 %files
 %defattr(-,root,root,-)
-%doc ChangeLog* doc/COPYING doc/rev_hist.txt
+%{!?_licensedir:%global license %%doc}
+%license doc/COPYING
+%doc ChangeLog* doc/rev_hist.txt
 %config(noreplace) %{_sysconfdir}/rearj.cfg
 %{_bindir}/*arj*
 %{_libdir}/arj/
 %{_mandir}/man1/*arj*1.*
 
 %changelog
+* Fri Apr 03 2015 Robert Scheck <robert at fedoraproject.org> 3.10.22-22
+- Added patch from Debian to avoid free on invalid pointer due to a
+  buffer overflow (#1196751, #1207180)
+- Added patch from Debian for symlink directory traversal (#1178824)
+- Added patch from Debian to fix the directory traversal via
+  //multiple/leading/slash (#1178824)
+
 * Sat Feb 21 2015 Till Maas <opensource at till.name> - 3.10.22-21
 - Rebuilt for Fedora 23 Change
   https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-independent_code
-- 
cgit v0.10.2


	http://pkgs.fedoraproject.org/cgit/arj.git/commit/?h=el6&id=2cd67121969cbf4b2ff32256cefb1180cc62e37f


More information about the scm-commits mailing list