diff options
author | Carsten Lohrke <carlo@gentoo.org> | 2005-12-01 23:15:36 +0000 |
---|---|---|
committer | Carsten Lohrke <carlo@gentoo.org> | 2005-12-01 23:15:36 +0000 |
commit | d9079095c7e3ea48e3b859ed1431558ee25efaf0 (patch) | |
tree | 67649440c1687e7427c866aea10c3926f7070376 | |
parent | Stable on alpha wrt sec bug #113888 (diff) | |
download | gentoo-2-d9079095c7e3ea48e3b859ed1431558ee25efaf0.tar.gz gentoo-2-d9079095c7e3ea48e3b859ed1431558ee25efaf0.tar.bz2 gentoo-2-d9079095c7e3ea48e3b859ed1431558ee25efaf0.zip |
hopefully fix 64 bit issues
(Portage version: 2.0.53)
-rw-r--r-- | app-arch/arj/ChangeLog | 8 | ||||
-rw-r--r-- | app-arch/arj/Manifest | 5 | ||||
-rw-r--r-- | app-arch/arj/arj-3.10.22-r1.ebuild | 71 | ||||
-rw-r--r-- | app-arch/arj/files/003_64_bit_clean.patch | 194 | ||||
-rw-r--r-- | app-arch/arj/files/digest-arj-3.10.22-r1 | 1 |
5 files changed, 277 insertions, 2 deletions
diff --git a/app-arch/arj/ChangeLog b/app-arch/arj/ChangeLog index 92acf2332044..4b361702543d 100644 --- a/app-arch/arj/ChangeLog +++ b/app-arch/arj/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for app-arch/arj # Copyright 2000-2005 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/app-arch/arj/ChangeLog,v 1.17 2005/11/13 03:36:19 weeve Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-arch/arj/ChangeLog,v 1.18 2005/12/01 23:15:36 carlo Exp $ + +*arj-3.10.22-r1 (01 Dec 2005) + + 01 Dec 2005; Carsten Lohrke <carlo@gentoo.org> + +files/003_64_bit_clean.patch, +arj-3.10.22-r1.ebuild: + hopefully fix 64 bit issues 13 Nov 2005; Jason Wever <weeve@gentoo.org> arj-3.10.18.ebuild: Stable on SPARC. diff --git a/app-arch/arj/Manifest b/app-arch/arj/Manifest index 21f36bd1ed40..fc538cfb4af2 100644 --- a/app-arch/arj/Manifest +++ b/app-arch/arj/Manifest @@ -1,16 +1,19 @@ -MD5 8aa94cf2495f998a1f6fcf366b85075f ChangeLog 2363 +MD5 6ef045231918c8fdb7ae052eda9dd78b ChangeLog 2531 MD5 4871ee30ae0243d8e3883677b20f09b2 arj-3.10.18.ebuild 889 MD5 c56ba07e37dec37c343269e23b35f156 arj-3.10.20.ebuild 757 MD5 671f5a92021e0a863dc1f272985e5eaa arj-3.10.21.ebuild 1660 +MD5 566861190fc6097d901c6a03fa00f471 arj-3.10.22-r1.ebuild 1742 MD5 f51ea80dc6000f222b32cad90a102413 arj-3.10.22.ebuild 1789 MD5 9b4b57af43fbbee01697da5fb90d0b0e arj-3.10g.ebuild 780 MD5 550bc972d825036f17f202a2b11b35c2 files/001_arches_align.patch 1424 MD5 395dfa8cc500ffae648777f8f241be88 files/002_no_remove_static_const.patch 530 +MD5 56b3cf96ec485b0d824761457417fcc0 files/003_64_bit_clean.patch 5948 MD5 5e2195c695615ccdb1ecbefe4bcad796 files/arj-3.10.18-2.6.headers.patch 402 MD5 0187cf8866c2daa752565918b94e7ea0 files/arj-3.10.18-fPIC.patch 342 MD5 7c4c01b5654eb39a7be1799abaad4c2f files/digest-arj-3.10.18 63 MD5 6c06d74438839e6880711dddb5efd036 files/digest-arj-3.10.20 63 MD5 f51bf31b56b6e0f9191beb570b38502c files/digest-arj-3.10.21 63 MD5 678545b31fd18e384761e80ed0f5bc50 files/digest-arj-3.10.22 63 +MD5 678545b31fd18e384761e80ed0f5bc50 files/digest-arj-3.10.22-r1 63 MD5 47ce44cd0bdc2037f4bfa8dc8e81dfbd files/digest-arj-3.10g 61 MD5 37236013e0d26d43c6bff35a8a48e8ec metadata.xml 220 diff --git a/app-arch/arj/arj-3.10.22-r1.ebuild b/app-arch/arj/arj-3.10.22-r1.ebuild new file mode 100644 index 000000000000..9e1718b94f07 --- /dev/null +++ b/app-arch/arj/arj-3.10.22-r1.ebuild @@ -0,0 +1,71 @@ +# Copyright 1999-2005 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-arch/arj/arj-3.10.22-r1.ebuild,v 1.1 2005/12/01 23:15:36 carlo Exp $ + +inherit gnuconfig eutils toolchain-funcs + +DESCRIPTION="Utility for opening arj archives" +HOMEPAGE="http://arj.sourceforge.net/" +SRC_URI="mirror://sourceforge/arj/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~x86 ~ppc ~sparc ~amd64" +IUSE="" +RESTRICT="nostrip" + +DEPEND="virtual/libc" + +src_unpack() { + unpack ${A} + epatch "${FILESDIR}/001_arches_align.patch" + epatch "${FILESDIR}/002_no_remove_static_const.patch" + epatch "${FILESDIR}/003_64_bit_clean.patch" +} + +src_compile() { + if [ -x /usr/sbin/gcc-config ] + then + # Do we have a gcc that use the new layout and gcc-config ? + if /usr/sbin/gcc-config --get-current-profile &> /dev/null + then + export GCC_PROFILE="$(/usr/sbin/gcc-config --get-current-profile)" + + # Just recheck gcc version ... + if [ "$(gcc-version)" != "3.2" ] && [ "$(gcc-version)" != "3.3" ] + then + # See if we can get a gcc profile we know is proper ... + if /usr/sbin/gcc-config --get-bin-path ${CHOST}-3.3.4 &> /dev/null + then + export PATH="$(/usr/sbin/gcc-config --get-bin-path ${CHOST}-3.3.4):${PATH}" + export GCC_PROFILE="${CHOST}-3.3.4" + else + eerror "This build needs gcc-3.2 or gcc-3.3!" + eerror + eerror "Use gcc-config to change your gcc profile:" + eerror + eerror " # gcc-config $CHOST-3.3.4" + eerror + eerror "or whatever gcc version is relevant." + die + fi + fi + fi + fi + + gnuconfig_update + + cd ${S}/gnu + autoconf + econf || die + + cd ${S} + make prepare || die "make prepare failed" + make package || die "make package failed" +} + +src_install() { + cd ${S}/linux-gnu/en/rs/u + dobin bin/* || die + dodoc doc/arj/* ${S}/ChangeLog +} diff --git a/app-arch/arj/files/003_64_bit_clean.patch b/app-arch/arj/files/003_64_bit_clean.patch new file mode 100644 index 000000000000..7cd602ea54ed --- /dev/null +++ b/app-arch/arj/files/003_64_bit_clean.patch @@ -0,0 +1,194 @@ +#DPATCHLEVEL=1 +diff -Naur -x .svn -x CVS arj-3.10.22.orig/arj_arcv.c arj-3.10.22/arj_arcv.c +--- arj-3.10.22.orig/arj_arcv.c 2005-06-21 22:53:12.000000000 +0300 ++++ arj-3.10.22/arj_arcv.c 2005-11-24 02:50:31.000000000 +0200 +@@ -59,27 +59,27 @@ + #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 @@ + + /* 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 */ +diff -Naur -x .svn -x CVS arj-3.10.22.orig/arj_proc.c arj-3.10.22/arj_proc.c +--- arj-3.10.22.orig/arj_proc.c 2005-11-24 02:50:19.000000000 +0200 ++++ arj-3.10.22/arj_proc.c 2005-11-24 02:50:31.000000000 +0200 +@@ -585,7 +585,7 @@ + /* 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 @@ + 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 @@ + *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 @@ + #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 @@ + + /* 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 @@ + + /* 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 @@ + + /* 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); +diff -Naur -x .svn -x CVS arj-3.10.22.orig/arj_proc.h arj-3.10.22/arj_proc.h +--- arj-3.10.22.orig/arj_proc.h 2005-11-24 02:50:19.000000000 +0200 ++++ arj-3.10.22/arj_proc.h 2005-11-24 03:17:25.000000000 +0200 +@@ -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 @@ + 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 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/app-arch/arj/files/digest-arj-3.10.22-r1 b/app-arch/arj/files/digest-arj-3.10.22-r1 new file mode 100644 index 000000000000..864c2b5bf8f6 --- /dev/null +++ b/app-arch/arj/files/digest-arj-3.10.22-r1 @@ -0,0 +1 @@ +MD5 f263bf3cf6d42a8b7e85b4fb514336d3 arj-3.10.22.tar.gz 431467 |