From d0945b239ab49c9bbb85e2980a6adac1c8534f66 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Fri, 3 Aug 2007 19:19:06 +0000 Subject: [PATCH 01/23] - Update License tag for new Licensing Guidelines compliance --- arj.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/arj.spec b/arj.spec index 5755514..db5735e 100644 --- a/arj.spec +++ b/arj.spec @@ -3,7 +3,7 @@ Version: 3.10.22 Release: 1%{?dist} Summary: Archiver for .arj files Group: Applications/Archiving -License: GPL +License: GPL+ URL: http://arj.sourceforge.net/ Source0: http://dl.sf.net/sourceforge/%{name}/%{name}-%{version}.tar.gz # unarj.* from Debian. @@ -67,5 +67,8 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Fri Aug 3 2007 Hans de Goede 3.10.22-2 +- Update License tag for new Licensing Guidelines compliance + * Sat Sep 9 2006 Hans de Goede 3.10.22-1 - initial FE submission based on a src.rpm by Ville Skyttä From cd977a46a3cc08b366f865316e6e9b18cf07b764 Mon Sep 17 00:00:00 2001 From: Jesse Keating Date: Tue, 19 Feb 2008 07:55:11 +0000 Subject: [PATCH 02/23] - Autorebuild for GCC 4.3 --- arj.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/arj.spec b/arj.spec index db5735e..ad2d477 100644 --- a/arj.spec +++ b/arj.spec @@ -1,6 +1,6 @@ Name: arj Version: 3.10.22 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Archiver for .arj files Group: Applications/Archiving License: GPL+ @@ -67,6 +67,9 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Tue Feb 19 2008 Fedora Release Engineering - 3.10.22-2 +- Autorebuild for GCC 4.3 + * Fri Aug 3 2007 Hans de Goede 3.10.22-2 - Update License tag for new Licensing Guidelines compliance From 46a09fe4092152456a714bbb5f886b8c1a795067 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Mon, 31 Mar 2008 13:37:51 +0000 Subject: [PATCH 03/23] - Fix missing prototype compiler warnings --- arj-3.10.22-missing-protos.patch | 34 ++++++++++++++++++++++++++++++++ arj.spec | 11 ++++++++--- 2 files changed, 42 insertions(+), 3 deletions(-) create mode 100644 arj-3.10.22-missing-protos.patch diff --git a/arj-3.10.22-missing-protos.patch b/arj-3.10.22-missing-protos.patch new file mode 100644 index 0000000..90061e5 --- /dev/null +++ b/arj-3.10.22-missing-protos.patch @@ -0,0 +1,34 @@ +diff -up arj-3.10.22/environ.c~ arj-3.10.22/environ.c +--- arj-3.10.22/environ.c~ 2008-03-31 15:19:36.000000000 +0200 ++++ arj-3.10.22/environ.c 2008-03-31 15:19:36.000000000 +0200 +@@ -12,6 +12,8 @@ + #include + #include + #include ++#else ++#include + #endif + + #include +diff -up arj-3.10.22/arjsfx.c~ arj-3.10.22/arjsfx.c +--- arj-3.10.22/arjsfx.c~ 2008-03-31 15:17:45.000000000 +0200 ++++ arj-3.10.22/arjsfx.c 2008-03-31 15:17:45.000000000 +0200 +@@ -5,6 +5,7 @@ + * + */ + ++#define _GNU_SOURCE + #include + #include + +diff -up arj-3.10.22/arj.c~ arj-3.10.22/arj.c +--- arj-3.10.22/arj.c~ 2008-03-31 15:17:14.000000000 +0200 ++++ arj-3.10.22/arj.c 2008-03-31 15:17:14.000000000 +0200 +@@ -5,6 +5,7 @@ + * + */ + ++#define _GNU_SOURCE + #include + #include + diff --git a/arj.spec b/arj.spec index ad2d477..b981161 100644 --- a/arj.spec +++ b/arj.spec @@ -1,15 +1,16 @@ Name: arj Version: 3.10.22 -Release: 2%{?dist} +Release: 4%{?dist} Summary: Archiver for .arj files Group: Applications/Archiving License: GPL+ URL: http://arj.sourceforge.net/ -Source0: http://dl.sf.net/sourceforge/%{name}/%{name}-%{version}.tar.gz +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}-2.diff.gz +Patch1: arj-3.10.22-missing-protos.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: autoconf Provides: unarj = %{version}-%{release} @@ -28,6 +29,7 @@ provided by ARJ Software, Inc. for i in debian/patches/00*.patch; do patch -p1 < $i done +%patch1 -p1 pushd gnu autoconf popd @@ -67,7 +69,10 @@ rm -rf $RPM_BUILD_ROOT %changelog -* Tue Feb 19 2008 Fedora Release Engineering - 3.10.22-2 +* Mon Mar 31 2008 Hans de Goede 3.10.22-4 +- Fix missing prototype compiler warnings + +* Tue Feb 19 2008 Fedora Release Engineering - 3.10.22-3 - Autorebuild for GCC 4.3 * Fri Aug 3 2007 Hans de Goede 3.10.22-2 From eed6f77080885c8767e7bb50a44e2f72ae712230 Mon Sep 17 00:00:00 2001 From: Robert Scheck Date: Sat, 30 Aug 2008 14:01:08 +0000 Subject: [PATCH 04/23] Corrected from %patch to %patch0 to make rpm > 4.4 happy --- arj.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/arj.spec b/arj.spec index b981161..f0b0aab 100644 --- a/arj.spec +++ b/arj.spec @@ -1,6 +1,6 @@ Name: arj Version: 3.10.22 -Release: 4%{?dist} +Release: 5%{?dist} Summary: Archiver for .arj files Group: Applications/Archiving License: GPL+ @@ -25,7 +25,7 @@ provided by ARJ Software, Inc. %prep %setup -q -%patch -p1 +%patch0 -p1 for i in debian/patches/00*.patch; do patch -p1 < $i done @@ -69,6 +69,9 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Sat Aug 30 2008 Robert Scheck 3.10.22-5 +- Corrected from %%patch to %%patch0 to make rpm > 4.4 happy + * Mon Mar 31 2008 Hans de Goede 3.10.22-4 - Fix missing prototype compiler warnings From 1ebced2b9114e0a6d106d2a9882473d1a980239d Mon Sep 17 00:00:00 2001 From: Robert Scheck Date: Mon, 8 Sep 2008 20:33:57 +0000 Subject: [PATCH 05/23] - Added patch to refer to original author in the manual page - Added patch to support parallel builds in upstream Makefile --- .cvsignore | 2 +- arj.spec | 72 ++++++++++++++++++++++++++++-------------------------- sources | 2 +- 3 files changed, 39 insertions(+), 37 deletions(-) diff --git a/.cvsignore b/.cvsignore index 1dab975..be1e379 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1,2 +1,2 @@ arj-3.10.22.tar.gz -arj_3.10.22-2.diff.gz +arj_3.10.22-6.diff.gz diff --git a/arj.spec b/arj.spec index f0b0aab..ec9b8a9 100644 --- a/arj.spec +++ b/arj.spec @@ -1,74 +1,76 @@ -Name: arj -Version: 3.10.22 -Release: 5%{?dist} -Summary: Archiver for .arj files -Group: Applications/Archiving -License: GPL+ -URL: http://arj.sourceforge.net/ -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}-2.diff.gz -Patch1: arj-3.10.22-missing-protos.patch -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -BuildRequires: autoconf -Provides: unarj = %{version}-%{release} -Obsoletes: unarj < 3 +Summary: Archiver for .arj files +Name: arj +Version: 3.10.22 +Release: 6%{?dist} +License: GPL+ +Group: Applications/Archiving +URL: http://arj.sourceforge.net/ +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 +BuildRequires: autoconf +Provides: unarj = %{version}-%{release} +Obsoletes: unarj < 3 +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) %description -This package is an open source version of the arj archiver. This -version has been created with the intent to preserve maximum -compatibility and retain the feature set of original ARJ archiver as -provided by ARJ Software, Inc. - +This package is an open source version of the arj archiver. It has +been created with the intent to preserve maximum compatibility and +retain the feature set of original ARJ archiver as provided by ARJ +Software, Inc. %prep %setup -q %patch0 -p1 +%patch1 -p1 + for i in debian/patches/00*.patch; do patch -p1 < $i done -%patch1 -p1 + pushd gnu autoconf popd - %build pushd gnu %configure popd -# no %{?_smp_mflags}, arj is not parallel build clean, no stripping please -make ADD_LDFLAGS="" +# Disable binary strippings +make %{?_smp_mflags} ADD_LDFLAGS="" %install rm -rf $RPM_BUILD_ROOT -make install DESTDIR=$RPM_BUILD_ROOT -# rm the register remainders of arj's sharewares time -rm $RPM_BUILD_ROOT%{_bindir}/arj-register -rm $RPM_BUILD_ROOT%{_mandir}/man1/arj-register.1* -install -Dpm 644 resource/rearj.cfg.example \ - $RPM_BUILD_ROOT%{_sysconfdir}/rearj.cfg +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 +# remove the register remainders of arj's sharewares time +rm -f $RPM_BUILD_ROOT%{_bindir}/arj-register +rm -f $RPM_BUILD_ROOT%{_mandir}/man1/arj-register.1* %clean 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* %{_libdir}/arj/ %{_mandir}/man1/*arj*1.* - %changelog +* Mon Sep 08 2008 Robert Scheck 3.10.22-6 +- Added patch to refer to original author in the manual page +- Added patch to support parallel builds in upstream Makefile + * Sat Aug 30 2008 Robert Scheck 3.10.22-5 - Corrected from %%patch to %%patch0 to make rpm > 4.4 happy diff --git a/sources b/sources index c08f5a4..fe07d0b 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ f263bf3cf6d42a8b7e85b4fb514336d3 arj-3.10.22.tar.gz -48d2275b8a8e6e5adaead8916d008fd3 arj_3.10.22-2.diff.gz +a34dbdd46d09248b4fd03d7d4faf3e30 arj_3.10.22-6.diff.gz From 213d573d721dafc8af9ad11824d05c432801009a Mon Sep 17 00:00:00 2001 From: Robert Scheck Date: Mon, 23 Feb 2009 20:32:10 +0000 Subject: [PATCH 06/23] Rebuild against gcc 4.4 and rpm 4.6 --- arj.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/arj.spec b/arj.spec index ec9b8a9..6685efa 100644 --- a/arj.spec +++ b/arj.spec @@ -1,7 +1,7 @@ Summary: Archiver for .arj files Name: arj Version: 3.10.22 -Release: 6%{?dist} +Release: 7%{?dist} License: GPL+ Group: Applications/Archiving URL: http://arj.sourceforge.net/ @@ -67,6 +67,9 @@ rm -rf $RPM_BUILD_ROOT %{_mandir}/man1/*arj*1.* %changelog +* Mon Feb 23 2009 Robert Scheck 3.10.22-7 +- Rebuild against gcc 4.4 and rpm 4.6 + * Mon Sep 08 2008 Robert Scheck 3.10.22-6 - Added patch to refer to original author in the manual page - Added patch to support parallel builds in upstream Makefile From cc343f8943d8053a4ecea4f5f3e646a84a7d0b88 Mon Sep 17 00:00:00 2001 From: Robert Scheck Date: Sat, 18 Apr 2009 14:35:49 +0000 Subject: [PATCH 07/23] Added patch to disable the custom printf to avoid conflicting strnlen definition with glibc headers (thanks to Lubomir Rintel) --- arj-3.10.22-custom-printf.patch | 15 +++++++++++++++ arj.spec | 8 +++++++- 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 arj-3.10.22-custom-printf.patch diff --git a/arj-3.10.22-custom-printf.patch b/arj-3.10.22-custom-printf.patch new file mode 100644 index 0000000..b789dd5 --- /dev/null +++ b/arj-3.10.22-custom-printf.patch @@ -0,0 +1,15 @@ +Patch by Lubomir Rintel for arj >= 3.10.22, which disables +the custom printf to avoid conflicting strnlen definition with the glibc +headers. By using custom printf (as in the past), we're completely loosing +all the _FORTIFY_SOURCE printf protections. + +--- arj-3.10.22/fardata.c 2004-04-17 13:39:42.000000000 +0200 ++++ arj-3.10.22/fardata.c.printf 2009-04-18 16:23:52.000000000 +0200 +@@ -13,7 +13,6 @@ + /* ASR fix 02/05/2003: need that regardless of COLOR_OUTPUT to support -jp + correctly */ + #if SFX_LEVEL>=ARJ +- #define CUSTOM_PRINTF + #define CHUNK_SIZE 512 /* Size of the output block */ + #define CHUNK_THRESHOLD (CHUNK_SIZE-256) /* Safety bound */ + #endif diff --git a/arj.spec b/arj.spec index 6685efa..6d228c6 100644 --- a/arj.spec +++ b/arj.spec @@ -1,7 +1,7 @@ Summary: Archiver for .arj files Name: arj Version: 3.10.22 -Release: 7%{?dist} +Release: 8%{?dist} License: GPL+ Group: Applications/Archiving URL: http://arj.sourceforge.net/ @@ -11,6 +11,7 @@ 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 BuildRequires: autoconf Provides: unarj = %{version}-%{release} Obsoletes: unarj < 3 @@ -26,6 +27,7 @@ Software, Inc. %setup -q %patch0 -p1 %patch1 -p1 +%patch2 -p1 for i in debian/patches/00*.patch; do patch -p1 < $i @@ -67,6 +69,10 @@ rm -rf $RPM_BUILD_ROOT %{_mandir}/man1/*arj*1.* %changelog +* Sat Apr 18 2009 Robert Scheck 3.10.22-8 +- Added patch to disable the custom printf to avoid conflicting + strnlen definition with glibc headers (thanks to Lubomir Rintel) + * Mon Feb 23 2009 Robert Scheck 3.10.22-7 - Rebuild against gcc 4.4 and rpm 4.6 From 0ee7a527993ae0241e9402d7c9c1e5fd0be630ed Mon Sep 17 00:00:00 2001 From: Jesse Keating Date: Fri, 24 Jul 2009 17:04:04 +0000 Subject: [PATCH 08/23] - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild --- arj.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/arj.spec b/arj.spec index 6d228c6..e8dd189 100644 --- a/arj.spec +++ b/arj.spec @@ -1,7 +1,7 @@ Summary: Archiver for .arj files Name: arj Version: 3.10.22 -Release: 8%{?dist} +Release: 9%{?dist} License: GPL+ Group: Applications/Archiving URL: http://arj.sourceforge.net/ @@ -69,6 +69,9 @@ rm -rf $RPM_BUILD_ROOT %{_mandir}/man1/*arj*1.* %changelog +* Fri Jul 24 2009 Fedora Release Engineering - 3.10.22-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + * Sat Apr 18 2009 Robert Scheck 3.10.22-8 - Added patch to disable the custom printf to avoid conflicting strnlen definition with glibc headers (thanks to Lubomir Rintel) From 1557afb3252d463161697cf3b855980ccb37765c Mon Sep 17 00:00:00 2001 From: Robert Scheck Date: Wed, 19 Aug 2009 08:40:48 +0000 Subject: [PATCH 09/23] Disabled the even with patches broken parallel builds again --- arj.spec | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/arj.spec b/arj.spec index e8dd189..1cfbd11 100644 --- a/arj.spec +++ b/arj.spec @@ -1,7 +1,7 @@ Summary: Archiver for .arj files Name: arj Version: 3.10.22 -Release: 9%{?dist} +Release: 10%{?dist} License: GPL+ Group: Applications/Archiving URL: http://arj.sourceforge.net/ @@ -42,8 +42,8 @@ pushd gnu %configure popd -# Disable binary strippings -make %{?_smp_mflags} ADD_LDFLAGS="" +# No %{?_smp_mflags}, arj is not parallel build clean, no stripping +make ADD_LDFLAGS="" %install rm -rf $RPM_BUILD_ROOT @@ -69,6 +69,9 @@ rm -rf $RPM_BUILD_ROOT %{_mandir}/man1/*arj*1.* %changelog +* Wed Aug 19 2009 Robert Scheck 3.10.22-10 +- Disabled the even with patches broken parallel builds again + * Fri Jul 24 2009 Fedora Release Engineering - 3.10.22-9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild From 307c35c897247650471f168c90800cc40743320f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Milo=C5=A1=20Jakub=C3=AD=C4=8Dek?= Date: Mon, 7 Sep 2009 08:30:08 +0000 Subject: [PATCH 10/23] - Fix FTBFS: added arj-3.10.22-quotes.patch --- arj-3.10.22-quotes.patch | 22 ++++++++++++++++++++++ arj.spec | 8 +++++++- 2 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 arj-3.10.22-quotes.patch diff --git a/arj-3.10.22-quotes.patch b/arj-3.10.22-quotes.patch new file mode 100644 index 0000000..fa57afc --- /dev/null +++ b/arj-3.10.22-quotes.patch @@ -0,0 +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 @@ + $(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 + # + # 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) + $(TOOLS_DIR)/msgbind $(RESFILE) msg_arj $(OS_ID) $(PACKAGE) $(LOCALE) $(BASEDIR) +- ++ sed -i 's|_""|\\""|' $(BASEDIR)/fmsg_arj.c + # + # REARJ utility + # diff --git a/arj.spec b/arj.spec index 1cfbd11..e60b898 100644 --- a/arj.spec +++ b/arj.spec @@ -1,7 +1,7 @@ Summary: Archiver for .arj files Name: arj Version: 3.10.22 -Release: 10%{?dist} +Release: 11%{?dist} License: GPL+ Group: Applications/Archiving URL: http://arj.sourceforge.net/ @@ -12,6 +12,8 @@ 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 +# 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 BuildRequires: autoconf Provides: unarj = %{version}-%{release} Obsoletes: unarj < 3 @@ -28,6 +30,7 @@ Software, Inc. %patch0 -p1 %patch1 -p1 %patch2 -p1 +%patch3 -p1 for i in debian/patches/00*.patch; do patch -p1 < $i @@ -69,6 +72,9 @@ rm -rf $RPM_BUILD_ROOT %{_mandir}/man1/*arj*1.* %changelog +* Sun Sep 6 2009 Milos Jakubicek 3.10.22-11 +- Fix FTBFS: added arj-3.10.22-quotes.patch + * Wed Aug 19 2009 Robert Scheck 3.10.22-10 - Disabled the even with patches broken parallel builds again From edbc857a0e192aae87ee17dbf77c9cf48c4053e0 Mon Sep 17 00:00:00 2001 From: Bill Nottingham Date: Wed, 25 Nov 2009 22:40:36 +0000 Subject: [PATCH 11/23] Fix typo that causes a failure to update the common directory. (releng #2781) --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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)) From a478437d2c33aab22d72dc14ed93fe90aa4a8c6e Mon Sep 17 00:00:00 2001 From: Robert Scheck Date: Sun, 28 Mar 2010 15:52:12 +0000 Subject: [PATCH 12/23] Re-enable parallel builds again now that quoting is fixed --- arj.spec | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) 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 3.10.22-12 +- Re-enable parallel builds again now that quoting is fixed + * Sun Sep 6 2009 Milos Jakubicek 3.10.22-11 - Fix FTBFS: added arj-3.10.22-quotes.patch From ed8019339fe9f980c8c6a790536e40c97fd1bb3c Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 28 Jul 2010 10:10:58 +0000 Subject: [PATCH 13/23] dist-git conversion --- .cvsignore => .gitignore | 0 Makefile | 21 --------------------- 2 files changed, 21 deletions(-) rename .cvsignore => .gitignore (100%) delete mode 100644 Makefile diff --git a/.cvsignore b/.gitignore similarity index 100% rename from .cvsignore rename to .gitignore 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) From fd8c3d81da3ffa3dde852f520ee2e6fbdb0637db Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Mon, 7 Feb 2011 20:02:59 -0600 Subject: [PATCH 14/23] - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild --- arj.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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 - 3.10.22-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + * Sun Mar 28 2010 Robert Scheck 3.10.22-12 - Re-enable parallel builds again now that quoting is fixed From 8cc372966245361bac9662b4a2230e168569efa2 Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Thu, 12 Jan 2012 15:44:30 -0600 Subject: [PATCH 15/23] - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild --- arj.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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 - 3.10.22-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + * Mon Feb 07 2011 Fedora Release Engineering - 3.10.22-13 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild From dbb5171e7b583479cf57f31f54a3e033bac59868 Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Wed, 18 Jul 2012 11:36:47 -0500 Subject: [PATCH 16/23] - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild --- arj.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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 - 3.10.22-15 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + * Thu Jan 12 2012 Fedora Release Engineering - 3.10.22-14 - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild From b6087ea3880a14eed9d0bafd7a2f761695367cd1 Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Wed, 13 Feb 2013 11:02:53 -0600 Subject: [PATCH 17/23] - Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild --- arj.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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 - 3.10.22-16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + * Wed Jul 18 2012 Fedora Release Engineering - 3.10.22-15 - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild From 267bdb7f459751933bc5161eff5217dc1d59bf3b Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Fri, 2 Aug 2013 20:54:31 -0500 Subject: [PATCH 18/23] - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild --- arj.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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 - 3.10.22-17 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + * Wed Feb 13 2013 Fedora Release Engineering - 3.10.22-16 - Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild From 42d3218bd18b22679e5f3a2be83493e6e9bf8bb3 Mon Sep 17 00:00:00 2001 From: Robert Scheck Date: Sun, 20 Oct 2013 01:21:07 +0200 Subject: [PATCH 19/23] Replaced compressed Debian patch file by regular patches --- .gitignore | 1 - arj-3.10.22-64_bit_clean.patch | 200 ++++++++++++++ arj-3.10.22-arches_align.patch | 38 +++ arj-3.10.22-doc_refer_robert_k_jung.patch | 18 ++ arj-3.10.22-no_remove_static_const.patch | 20 ++ arj-3.10.22-parallel_build.patch | 180 +++++++++++++ arj-3.10.22-quotes.patch | 30 +-- arj-3.10.22-security_format.patch | 305 ++++++++++++++++++++++ arj-3.10.22-use_safe_strcpy.patch | 97 +++++++ arj.spec | 37 ++- sources | 1 - 11 files changed, 897 insertions(+), 30 deletions(-) create mode 100644 arj-3.10.22-64_bit_clean.patch create mode 100644 arj-3.10.22-arches_align.patch create mode 100644 arj-3.10.22-doc_refer_robert_k_jung.patch create mode 100644 arj-3.10.22-no_remove_static_const.patch create mode 100644 arj-3.10.22-parallel_build.patch create mode 100644 arj-3.10.22-security_format.patch create mode 100644 arj-3.10.22-use_safe_strcpy.patch 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 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>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 ++ + /* 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 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 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 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 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 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 - # - # 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 @@ ++ sed -e 's|_""|\\""|' -i $(BASEDIR)/fmsg_arj.c - $(BASEDIR)/fmsg_arj.c $(BASEDIR)/imsg_arj.c $(BASEDIR)/nmsg_arj.c: $(TOOLS_DIR)/msgbind$x $(RESFILE) - $(TOOLS_DIR)/msgbind $(RESFILE) msg_arj $(OS_ID) $(PACKAGE) $(LOCALE) $(BASEDIR) -- -+ sed -i 's|_""|\\""|' $(BASEDIR)/fmsg_arj.c # # REARJ utility +--- 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 -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 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=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 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 3.10.22-18 +- Replaced compressed Debian patch file by regular patches + * Sat Aug 03 2013 Fedora Release Engineering - 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 From f3028ce21975a0a364d04e3e7b88f29c71dc0f1f Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Fri, 6 Jun 2014 20:24:23 -0500 Subject: [PATCH 20/23] - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild --- arj.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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 - 3.10.22-19 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + * Sun Oct 20 2013 Robert Scheck 3.10.22-18 - Replaced compressed Debian patch file by regular patches From 04e8337662ad8bcf262f3ec42c2e1cd804433629 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Fri, 15 Aug 2014 20:56:51 +0000 Subject: [PATCH 21/23] - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild --- arj.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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 - 3.10.22-20 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + * Sat Jun 07 2014 Fedora Release Engineering - 3.10.22-19 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild From 550c1ebdbf30c667ea57b8ef196e0add453d1d16 Mon Sep 17 00:00:00 2001 From: Till Maas Date: Sat, 21 Feb 2015 22:21:19 +0100 Subject: [PATCH 22/23] Rebuilt for Fedora 23 Change https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-independent_code --- arj.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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 - 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 - 3.10.22-20 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild From 097f276de931e340747d450aa190a463621a701c Mon Sep 17 00:00:00 2001 From: Robert Scheck Date: Fri, 3 Apr 2015 15:58:14 +0200 Subject: [PATCH 23/23] - 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) --- arj-3.10.22-security-afl.patch | 35 ++++++++ arj-3.10.22-security-traversal-dir.patch | 33 ++++++++ arj-3.10.22-security-traversal-symlink.patch | 85 ++++++++++++++++++++ arj.spec | 19 ++++- 4 files changed, 170 insertions(+), 2 deletions(-) create mode 100644 arj-3.10.22-security-afl.patch create mode 100644 arj-3.10.22-security-traversal-dir.patch create mode 100644 arj-3.10.22-security-traversal-symlink.patch 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 +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=0) ++ while(--c>=0&&i +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 +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 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 - 3.10.22-21 - Rebuilt for Fedora 23 Change https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-independent_code