unrar: bump version.

This commit is contained in:
Jerome Duval
2019-03-22 20:56:29 +01:00
parent ab69846a6e
commit a3613c3d1b
4 changed files with 133 additions and 147 deletions

View File

@@ -1,80 +0,0 @@
From 1c19dea55d375f6968ce54a51ab42958347726a8 Mon Sep 17 00:00:00 2001
From: Jerome Duval <jerome.duval@gmail.com>
Date: Mon, 12 May 2014 18:07:44 +0000
Subject: initial Haiku patch
diff --git a/archive.hpp b/archive.hpp
index 6e85b9f..a85afc5 100644
--- a/archive.hpp
+++ b/archive.hpp
@@ -65,7 +65,6 @@ class Archive:public File
size_t SearchSubBlock(const wchar *Type);
size_t SearchRR();
void WriteBlock(HEADER_TYPE HeaderType,BaseBlock *wb=NULL,bool OnlySetSize=false,bool NonFinalWrite=false);
- void SetBlockSize(HEADER_TYPE HeaderType,BaseBlock *wb=NULL) {WriteBlock(HeaderType,wb,true);}
size_t ReadHeader();
void CheckArc(bool EnableBroken);
void CheckOpen(const wchar *Name);
diff --git a/makefile b/makefile
index 259b907..ccf1a54 100644
--- a/makefile
+++ b/makefile
@@ -5,11 +5,15 @@
CXX=c++
CXXFLAGS=-O2
LIBFLAGS=-fPIC
-DEFINES=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DRAR_SMP
+DEFINES=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DRAR_SMP -D_BSD_SOURCE
STRIP=strip
AR=ar
-LDFLAGS=-pthread
+LDFLAGS=-lbsd
DESTDIR=/usr
+RC=rc
+XRES=xres
+MIMESET=mimeset
+DESTDIR=(shell finddir B_SYSTEM_DIRECTORY)
# Linux using LCC
#CXX=lcc
@@ -128,12 +132,14 @@ install: install-unrar
uninstall: uninstall-unrar
clean:
- @rm -f *.o *.bak *~
+ @rm -f *.o *.bak *~ *.rsrc
unrar: clean $(OBJECTS) $(UNRAR_OBJ)
@rm -f unrar
$(LINK) -o unrar $(LDFLAGS) $(OBJECTS) $(UNRAR_OBJ) $(LIBS)
- $(STRIP) unrar
+ $(RC) -o unrar.rsrc unrar.rdef
+ $(XRES) -o unrar unrar.rsrc
+ $(MIMESET) unrar
sfx: WHAT=SFX_MODULE
sfx: clean $(OBJECTS)
diff --git a/os.hpp b/os.hpp
index 795dd96..ce70f69 100644
--- a/os.hpp
+++ b/os.hpp
@@ -190,6 +190,15 @@
#endif
#endif
+#ifdef __HAIKU__
+ #include <endian.h>
+ #if LITTLE_ENDIAN
+ #undef BIG_ENDIAN
+ #elif BIG_ENDIAN
+ #undef LITTLE_ENDIAN
+ #endif
+#endif
+
#if defined(__sparc) || defined(sparc) || defined(__hpux)
#ifndef BIG_ENDIAN
#define BIG_ENDIAN
--
2.12.2

View File

@@ -0,0 +1,21 @@
From 1c19dea55d375f6968ce54a51ab42958347726a8 Mon Sep 17 00:00:00 2001
From: Jerome Duval <jerome.duval@gmail.com>
Date: Mon, 12 May 2014 18:07:44 +0000
Subject: initial Haiku patch
diff --git a/archive.hpp b/archive.hpp
index fd33ac3..787977b 100644
--- a/archive.hpp
+++ b/archive.hpp
@@ -67,7 +67,6 @@ class Archive:public File
size_t SearchSubBlock(const wchar *Type);
size_t SearchRR();
void WriteBlock(HEADER_TYPE HeaderType,BaseBlock *wb=NULL,bool OnlySetSize=false,bool NonFinalWrite=false);
- void SetBlockSize(HEADER_TYPE HeaderType,BaseBlock *wb=NULL) {WriteBlock(HeaderType,wb,true);}
size_t ReadHeader();
void CheckArc(bool EnableBroken);
void CheckOpen(const wchar *Name);
--
2.16.2

View File

@@ -1,67 +0,0 @@
SUMMARY="Uncompress rar files"
DESCRIPTION="UnRAR decompresses rar files. It is a powerful archive manager \
that can backup your data and reduce the size of email attachments. UnRAR can \
decompress the following file formats:
- RAR
- ZIP
- CAB
- ARJ
- JZH
- TAR
- GZ and TAR.GZ
- BZ2 and TAR.BZ2
- ACE
- UUE
- JAR (Java Archive)
- ISO
- 7Z
- XZ
- Z (Unix Compress)"
HOMEPAGE="https://www.rarlab.com/rar_add.htm"
COPYRIGHT="1993-2016 Alexander Roshal"
LICENSE="UnRAR"
REVISION="2"
SOURCE_URI="http://www.rarlab.com/rar/unrarsrc-$portVersion.tar.gz"
CHECKSUM_SHA256="9b66e4353a9944bc140eb2a919ff99482dd548f858f5e296d809e8f7cdb2fcf4"
SOURCE_DIR="unrar"
PATCHES="unrar-$portVersion.patchset"
ADDITIONAL_FILES="unrar.rdef"
ARCHITECTURES="x86_gcc2 x86 x86_64"
PROVIDES="
unrar = $portVersion
cmd:unrar = $portVersion
"
REQUIRES="
haiku
"
BUILD_REQUIRES="
haiku_devel
"
BUILD_PREREQUIRES="
cmd:cut
cmd:g++
cmd:make
cmd:sed
"
BUILD()
{
local MAJOR="`echo "$portVersion" | cut -d. -f1`"
local MIDDLE="`echo "$portVersion" | cut -d. -f2`"
local MINOR="`echo "$portVersion" | cut -d. -f3`"
sed \
-e "s|@MAJOR@|$MAJOR|" \
-e "s|@MIDDLE@|$MIDDLE|" \
-e "s|@MINOR@|$MINOR|" \
$portDir/additional-files/unrar.rdef > unrar.rdef
make DESTDIR=$prefix
}
INSTALL()
{
make DESTDIR=$prefix install
}

View File

@@ -0,0 +1,112 @@
SUMMARY="Uncompress rar files"
DESCRIPTION="UnRAR decompresses rar files. It is a powerful archive manager \
that can backup your data and reduce the size of email attachments. UnRAR can \
decompress the following file formats:
- RAR
- ZIP
- CAB
- ARJ
- JZH
- TAR
- GZ and TAR.GZ
- BZ2 and TAR.BZ2
- ACE
- UUE
- JAR (Java Archive)
- ISO
- 7Z
- XZ
- Z (Unix Compress)"
HOMEPAGE="https://www.rarlab.com/rar_add.htm"
COPYRIGHT="1993-2018 Alexander Roshal"
LICENSE="UnRAR"
REVISION="1"
SOURCE_URI="https://www.rarlab.com/rar/unrarsrc-$portVersion.tar.gz"
CHECKSUM_SHA256="40e856b78374f258d8a1f5f02c02f828c5392a0118c9300fd169a300b520a444"
SOURCE_DIR="unrar"
PATCHES="unrar-$portVersion.patchset"
ADDITIONAL_FILES="
test.rar
unrar.rdef
"
ARCHITECTURES="x86_gcc2 x86 x86_64"
PROVIDES="
unrar = $portVersion
cmd:unrar = $portVersion
devel:libunrar = $portVersion
lib:libunrar = $portVersion
"
REQUIRES="
haiku
"
BUILD_REQUIRES="
haiku_devel
"
BUILD_PREREQUIRES="
cmd:cut
cmd:g++
cmd:make
cmd:sed
"
PATCH()
{
if [ "$effectiveTargetArchitecture" = x86_gcc2 ]; then
sed -i \
-e "/^CXXFLAGS=/ s/ -Wno-logical-op-parentheses//;" \
-e "/^CXXFLAGS=/ s/ -Wno-dangling-else//;" \
makefile
fi
sed -i -e "/^LDFLAGS=/ d;" makefile
}
BUILD()
{
local MAJOR="`echo "$portVersion" | cut -d. -f1`"
local MIDDLE="`echo "$portVersion" | cut -d. -f2`"
local MINOR="`echo "$portVersion" | cut -d. -f3`"
sed \
-e "s|@MAJOR@|$MAJOR|" \
-e "s|@MIDDLE@|$MIDDLE|" \
-e "s|@MINOR@|$MINOR|" \
"$portDir"/additional-files/unrar.rdef > unrar.rdef
for i in unrar lib sfx; do
mkdir -p $i
cd $i
ln -f -s ../*.cpp ../*.hpp ../makefile .
CPPFLAGS="-D_BSD_SOURCE" LDFLAGS="-lbsd" make $i
cd ..
done
}
INSTALL()
{
install -d "$libDir"/unrar
install -t "$libDir"/unrar sfx/default.sfx
for i in unrar lib; do
make -C $i DESTDIR="$prefix" install-$i
done
rm "$libDir"/libunrar.a
prepareInstalledDevelLib libunrar
addResourcesToBinaries unrar.rdef "$binDir"/unrar
mimeset -f "$binDir"/unrar
}
TEST()
{
rm -rf dir
"$sourceDir"/unrar/unrar x "$portDir"/additional-files/test.rar
test "`cat dir/haiku.txt`" = Haiku
cat sfx/default.sfx "$portDir"/additional-files/test.rar >dir/sfxtest
cd dir
chmod +x sfxtest
./sfxtest
test "`cat dir/haiku.txt`" = Haiku
}