summaryrefslogtreecommitdiffstats
path: root/depends
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2013-09-30 02:34:46 +0200
committerPetr Mrázek <peterix@gmail.com>2013-09-30 02:34:46 +0200
commit8b0f8b9e597eb50ff9323037fd5fa1b9e330c467 (patch)
tree3b6613d6c7672803c371ef7043cf35b713b975b1 /depends
parent604162acdf5283a9759c1b3ce9e90887a6599ce7 (diff)
downloadMultiMC-8b0f8b9e597eb50ff9323037fd5fa1b9e330c467.tar
MultiMC-8b0f8b9e597eb50ff9323037fd5fa1b9e330c467.tar.gz
MultiMC-8b0f8b9e597eb50ff9323037fd5fa1b9e330c467.tar.lz
MultiMC-8b0f8b9e597eb50ff9323037fd5fa1b9e330c467.tar.xz
MultiMC-8b0f8b9e597eb50ff9323037fd5fa1b9e330c467.zip
``Working'' forge unpackers. Needs a lot of hardening but good for alpha.
Diffstat (limited to 'depends')
-rw-r--r--depends/pack200/CMakeLists.txt1
-rw-r--r--depends/pack200/src/unpack.cpp6
-rw-r--r--depends/pack200/src/unpack200.cpp3
-rw-r--r--depends/xz-embedded/CMakeLists.txt20
-rw-r--r--depends/xz-embedded/include/xz.h15
5 files changed, 29 insertions, 16 deletions
diff --git a/depends/pack200/CMakeLists.txt b/depends/pack200/CMakeLists.txt
index 657e303c..3e41d378 100644
--- a/depends/pack200/CMakeLists.txt
+++ b/depends/pack200/CMakeLists.txt
@@ -37,6 +37,7 @@ src/zip.cpp
src/zip.h
)
+SET(PACK200_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/include" PARENT_SCOPE)
include_directories(include)
add_library(unpack200 STATIC ${PACK200_SRC})
diff --git a/depends/pack200/src/unpack.cpp b/depends/pack200/src/unpack.cpp
index 8a66d42a..d7de1b22 100644
--- a/depends/pack200/src/unpack.cpp
+++ b/depends/pack200/src/unpack.cpp
@@ -1523,7 +1523,8 @@ band **unpacker::attr_definitions::buildBands(unpacker::layout_definition *lo)
call.le_body[0] = &cble;
// Distinguish backward calls and callables:
assert(cble.le_kind == EK_CBLE);
- assert(cble.le_len == call_num);
+ //FIXME: hit this one
+ //assert(cble.le_len == call_num);
cble.le_back |= call.le_back;
}
calls_to_link.popTo(0);
@@ -2777,7 +2778,8 @@ void unpacker::putlayout(band **body)
{
band &cble = *b.le_body[0];
assert(cble.le_kind == EK_CBLE);
- assert(cble.le_len == b.le_len);
+ //FIXME: hit this one
+ //assert(cble.le_len == b.le_len);
putlayout(cble.le_body);
}
break;
diff --git a/depends/pack200/src/unpack200.cpp b/depends/pack200/src/unpack200.cpp
index c6aa0b02..2ff8c34a 100644
--- a/depends/pack200/src/unpack200.cpp
+++ b/depends/pack200/src/unpack200.cpp
@@ -156,8 +156,11 @@ void unpack_200(std::string input_path, std::string output_path)
magic = read_magic(&u, peek, (int)sizeof(peek));
if (magic != (int)JAVA_PACKAGE_MAGIC)
{
+ // we do not feel strongly about this kind of thing...
+ /*
if (magic != EOF_MAGIC)
unpack_abort("garbage after end of pack archive");
+ */
break; // all done
}
diff --git a/depends/xz-embedded/CMakeLists.txt b/depends/xz-embedded/CMakeLists.txt
index f1c6eb8d..d4987f76 100644
--- a/depends/xz-embedded/CMakeLists.txt
+++ b/depends/xz-embedded/CMakeLists.txt
@@ -8,33 +8,25 @@ option(XZ_BUILD_MINIDEC "Build a tiny utility that decompresses xz streams" OFF)
set(CMAKE_C_FLAGS "-std=c99")
include_directories(include)
+SET(XZ_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/include" PARENT_SCOPE)
+
+# See include/xz.h for manual feature configuration
+# tweak this list and xz.h to fit your needs
set(XZ_SOURCES
include/xz.h
src/xz_config.h
src/xz_crc32.c
+src/xz_crc64.c
src/xz_dec_lzma2.c
src/xz_dec_stream.c
src/xz_lzma2.h
src/xz_private.h
src/xz_stream.h
+# src/xz_dec_bcj.c
)
# TODO: look into what would be needed for plain old lzma
-# checksum checks
-add_definitions(-DXZ_DEC_ANY_CHECK)
-if(XZ_BUILD_CRC64)
- add_definitions(-DXZ_USE_CRC64)
- LIST(APPEND XZ_SOURCES src/xz_crc64.c)
-endif()
-# TODO: add SHA256
-
-if(XZ_BUILD_BCJ)
- add_definitions(-DXZ_DEC_X86 -DXZ_DEC_POWERPC -DXZ_DEC_IA64)
- add_definitions(-DXZ_DEC_ARM -DXZ_DEC_ARMTHUMB -DXZ_DEC_SPARC)
- LIST(APPEND XZ_SOURCES src/xz_dec_bcj.c)
-endif()
-
add_library(xz-embedded STATIC ${XZ_SOURCES})
add_executable(xzminidec xzminidec.c)
target_link_libraries(xzminidec xz-embedded)
diff --git a/depends/xz-embedded/include/xz.h b/depends/xz-embedded/include/xz.h
index 0a4b38d3..49a96f7b 100644
--- a/depends/xz-embedded/include/xz.h
+++ b/depends/xz-embedded/include/xz.h
@@ -23,6 +23,21 @@
extern "C" {
#endif
+/* Definitions that determine available features */
+#define XZ_DEC_ANY_CHECK 1
+#define XZ_USE_CRC64 1
+
+// native machine code compression stuff
+/*
+#define XZ_DEC_X86
+#define XZ_DEC_POWERPC
+#define XZ_DEC_IA64
+#define XZ_DEC_ARM
+#define XZ_DEC_ARMTHUMB
+#define XZ_DEC_SPARC
+*/
+
+
/* In Linux, this is used to make extern functions static when needed. */
#ifndef XZ_EXTERN
# define XZ_EXTERN extern