summarylogtreecommitdiffstats
diff options
context:
space:
mode:
author0x9fff002019-12-01 15:01:28 +0100
committer0x9fff002019-12-01 15:01:28 +0100
commit603a831e29552dc9601ef1b107680a145acf845e (patch)
tree12a707d9e72ef2d080f52fe0605244fca410c298
parent8c2e0c62706daa548ef6f76d00b371cfde062288 (diff)
downloadaur-603a831e29552dc9601ef1b107680a145acf845e.tar.gz
Add patches for missing algorithm header
-rw-r--r--.SRCINFO6
-rw-r--r--.gitignore28
-rw-r--r--.gitignore_append2
-rw-r--r--0001-Fix-31-add-missing-algorithm-header.patch144
-rw-r--r--0002-Add-missing-algorithm-header-to-main.cpp.patch24
-rw-r--r--PKGBUILD36
6 files changed, 227 insertions, 13 deletions
diff --git a/.SRCINFO b/.SRCINFO
index f1fcacff7ae3..01581b48e67e 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
pkgbase = img4tool-git
pkgdesc = Tool for manipulating IMG4, IM4M and IM4P files
- pkgver = r162.d514ce5
+ pkgver = r168.dd53076
pkgrel = 1
url = https://github.com/tihmstar/img4tool
arch = x86_64
@@ -13,7 +13,11 @@ pkgbase = img4tool-git
provides = img4tool
conflicts = img4tool
source = git+https://github.com/tihmstar/img4tool.git
+ source = 0001-Fix-31-add-missing-algorithm-header.patch
+ source = 0002-Add-missing-algorithm-header-to-main.cpp.patch
sha256sums = SKIP
+ sha256sums = 656580f345b286f2f9b5c1b91e2a819b2dea580cb3a9b4a22ccb4befd7ea42b0
+ sha256sums = d95f9c542b65b36df5ebf7cf3ed374222cc77ad92235cb0a98e986e964e36fff
pkgname = img4tool-git
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000000..c7c217204f79
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,28 @@
+*.tar
+*.tar.*
+*.jar
+*.exe
+*.msi
+*.zip
+*.tgz
+*.log
+*.log.*
+*.sig
+
+pkg/
+src/
+*~
+
+# temporary files which can be created if a process still has a handle open of a deleted file
+.fuse_hidden*
+
+# KDE directory preferences
+.directory
+
+# Linux trash folder which might appear on any partition or disk
+.Trash-*
+
+# .nfs files are created when an open file is removed but is still being accessed
+.nfs*
+# archlinuxpackages linux
+img4tool
diff --git a/.gitignore_append b/.gitignore_append
new file mode 100644
index 000000000000..bd2eb20ceeac
--- /dev/null
+++ b/.gitignore_append
@@ -0,0 +1,2 @@
+# archlinuxpackages linux
+img4tool
diff --git a/0001-Fix-31-add-missing-algorithm-header.patch b/0001-Fix-31-add-missing-algorithm-header.patch
new file mode 100644
index 000000000000..599a743e7072
--- /dev/null
+++ b/0001-Fix-31-add-missing-algorithm-header.patch
@@ -0,0 +1,144 @@
+From 371ef6a8e0260bd15b0d3ccc29bb25d8a5dd7a4d Mon Sep 17 00:00:00 2001
+From: elp0t0r1c0 <elpotorico@protonmail.com>
+Date: Fri, 29 Nov 2019 21:44:29 +0100
+Subject: [PATCH 1/2] Fix #31: add missing algorithm header
+
+---
+ img4tool/img4tool.cpp | 33 +++++++++++++++++----------------
+ 1 file changed, 17 insertions(+), 16 deletions(-)
+
+diff --git a/img4tool/img4tool.cpp b/img4tool/img4tool.cpp
+index ac62916..3746257 100644
+--- a/img4tool/img4tool.cpp
++++ b/img4tool/img4tool.cpp
+@@ -10,6 +10,7 @@
+ #include <stdio.h>
+ #include <string.h>
+ #include <array>
++#include <algorithm>
+ #include <arpa/inet.h>
+ #include "ASN1DERElement.hpp"
+ #include <libgeneral/macros.h>
+@@ -369,7 +370,7 @@ void tihmstar::img4tool::printIM4P(const void *buf, size_t size){
+ {
+ ASN1DERElement versionTag = tag[0];
+ ASN1DERElement sizeTag = tag[1];
+-
++
+ assure(versionTag.tag().isConstructed == ASN1DERElement::Primitive);
+ assure(versionTag.tag().tagNumber == ASN1DERElement::TagINTEGER);
+ assure(versionTag.tag().tagClass == ASN1DERElement::Universal);
+@@ -480,22 +481,22 @@ ASN1DERElement tihmstar::img4tool::getIM4RFromIMG4(const ASN1DERElement &img4){
+ ASN1DERElement im4r = container[0];
+
+ assure(isIM4R(im4r));
+-
++
+ return im4r;
+ }
+
+ ASN1DERElement tihmstar::img4tool::getBNCNFromIM4R(const ASN1DERElement &im4r){
+ assure(isIM4R(im4r));
+-
++
+ ASN1DERElement set = im4r[1];
+ ASN1DERElement bncnTag = set[0];
+ size_t ptagVal = 0;
+ ASN1DERElement ptag = parsePrivTag(bncnTag.buf(), bncnTag.size(), &ptagVal);
+ ASN1DERElement octet = ptag[1];
+-
++
+ //convert big endian to little endian
+ std::string octetString{(char*)octet.payload(),octet.payloadSize()};
+-
++
+ ASN1DERElement retval({ASN1DERElement::TagOCTET, ASN1DERElement::Primitive, ASN1DERElement::Universal},octetString.c_str(),octetString.size());
+ return retval;
+ }
+@@ -564,7 +565,7 @@ ASN1DERElement tihmstar::img4tool::uncompressIfNeeded(const ASN1DERElement &comp
+ ASN1DERElement compressingSequence = origIM4P[5];
+ ASN1DERElement versionTag = compressingSequence[0];
+ ASN1DERElement sizeTag = compressingSequence[1];
+-
++
+ assure(versionTag.tag().isConstructed == ASN1DERElement::Primitive);
+ assure(versionTag.tag().tagNumber == ASN1DERElement::TagINTEGER);
+ assure(versionTag.tag().tagClass == ASN1DERElement::Universal);
+@@ -574,10 +575,10 @@ ASN1DERElement tihmstar::img4tool::uncompressIfNeeded(const ASN1DERElement &comp
+ assure(sizeTag.tag().isConstructed == ASN1DERElement::Primitive);
+ assure(sizeTag.tag().tagNumber == ASN1DERElement::TagINTEGER);
+ assure(sizeTag.tag().tagClass == ASN1DERElement::Universal);
+-
++
+ unpackedLen = sizeTag.getIntegerValue();
+ unpacked = (char*)malloc(unpackedLen);
+-
++
+ if ((uncompSizeReal = lzfse_decode_buffer((uint8_t*)unpacked, unpackedLen, (const uint8_t*)compressedOctet.payload(), compressedOctet.payloadSize(), NULL)) == unpackedLen) {
+ retVal = ASN1DERElement({ASN1DERElement::TagNumber::TagOCTET,ASN1DERElement::Primitive, ASN1DERElement::Universal}, unpacked, unpackedLen);
+ printf("ok\n");
+@@ -780,9 +781,9 @@ bool tihmstar::img4tool::isGeneratorValidForIM4M(const ASN1DERElement &im4m, std
+ try {
+ ASN1DERElement bnch = getValFromIM4M(im4m,'BNCH');
+ uint64_t gen = 0;
+-
++
+ sscanf(generator.c_str(), "0x%16llx", &gen);
+-
++
+ if (bnch.payloadSize() == SHA_DIGEST_LENGTH) {
+ std::array<char, SHA_DIGEST_LENGTH> tmp{'\0'};
+ std::string hash{tmp.begin(),tmp.end()};
+@@ -915,7 +916,7 @@ bool tihmstar::img4tool::isIM4R(const ASN1DERElement &im4r) noexcept{
+ assure(set.tag().tagClass == ASN1DERElement::TagClass::Universal);
+
+ ASN1DERElement bncnTag = set[0];
+-
++
+ size_t ptagVal = 0;
+ ASN1DERElement ptag = parsePrivTag(bncnTag.buf(), bncnTag.size(), &ptagVal);
+ assure(ptagVal == htonl('BNCN'));
+@@ -1079,7 +1080,7 @@ bool tihmstar::img4tool::im4mMatchesBuildIdentity(const ASN1DERElement &im4m, pl
+ checksPassed = false;
+ findDGST = ignoreWhitelist[0]+1;
+ }
+-
++
+ printf("[IMG4TOOL] checking buildidentity matches board ... ");
+ if (!doesIM4MBoardMatchBuildIdentity(im4m, buildIdentity)) {
+ printf("NO\n");
+@@ -1135,19 +1136,19 @@ bool tihmstar::img4tool::im4mMatchesBuildIdentity(const ASN1DERElement &im4m, pl
+ continue;
+ }
+ }
+-
++
+ {
+ if (!strncmp(eKey, "Savage,",strlen("Savage,"))) {
+ printf("IGN (custom ignore: Savage)\n");
+ continue;
+ }
+ }
+-
++
+ if (!(pDigest = plist_dict_get_item(eVal, "Digest"))) {
+ printf("IGN (no digest in BuildManifest)\n");
+ continue;
+ }
+-
++
+ assure(plist_get_node_type(pDigest) == PLIST_DATA);
+ plist_get_data_val(pDigest, &digest, &digestLen);
+
+@@ -1194,7 +1195,7 @@ bool tihmstar::img4tool::im4mMatchesBuildIdentity(const ASN1DERElement &im4m, pl
+ }
+ }
+ }
+-
++
+ if (!hasDigit) {
+ if (findDGST.size()) {
+ printf("IGN (hash not found in im4m, but ignoring since we only care about '%s')\n",findDGST.c_str());
+--
+2.24.0
+
diff --git a/0002-Add-missing-algorithm-header-to-main.cpp.patch b/0002-Add-missing-algorithm-header-to-main.cpp.patch
new file mode 100644
index 000000000000..c107b427ff49
--- /dev/null
+++ b/0002-Add-missing-algorithm-header-to-main.cpp.patch
@@ -0,0 +1,24 @@
+From 60f9462c5a57789fc7d9ac3be595422366ec3a2d Mon Sep 17 00:00:00 2001
+From: 0x9fff00 <0x9fff00+git@protonmail.ch>
+Date: Sun, 1 Dec 2019 14:45:41 +0100
+Subject: [PATCH 2/2] Add missing algorithm header to main.cpp
+
+---
+ img4tool/main.cpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/img4tool/main.cpp b/img4tool/main.cpp
+index dc2474e..6f9fc66 100644
+--- a/img4tool/main.cpp
++++ b/img4tool/main.cpp
+@@ -12,6 +12,7 @@
+ #include <getopt.h>
+ #include <string.h>
+ #include <stdlib.h>
++#include <algorithm>
+
+ #include <libgeneral/macros.h>
+ #include "img4tool.hpp"
+--
+2.24.0
+
diff --git a/PKGBUILD b/PKGBUILD
index 65d5e1fb4513..094942656096 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,36 +1,48 @@
# Maintainer: 0x9fff00 <0x9fff00+git@protonmail.ch>
# Contributor: Jonas Heinrich <onny@project-insanity.org>
-_pkgname=img4tool
-pkgname=$_pkgname-git
-pkgver=r162.d514ce5
+_name=img4tool
+pkgname=$_name-git
+pkgver=r168.dd53076
pkgrel=1
pkgdesc='Tool for manipulating IMG4, IM4M and IM4P files'
arch=('x86_64')
-url="https://github.com/tihmstar/$_pkgname"
+url="https://github.com/tihmstar/$_name"
license=('LGPL3')
depends=('libgeneral' 'libplist' 'openssl')
makedepends=('git' 'lzfse')
-provides=("$_pkgname")
-conflicts=("$_pkgname")
-source=("git+$url.git")
-sha256sums=('SKIP')
+provides=("$_name")
+conflicts=("$_name")
+source=("git+$url.git"
+ '0001-Fix-31-add-missing-algorithm-header.patch'
+ '0002-Add-missing-algorithm-header-to-main.cpp.patch')
+sha256sums=('SKIP'
+ '656580f345b286f2f9b5c1b91e2a819b2dea580cb3a9b4a22ccb4befd7ea42b0'
+ 'd95f9c542b65b36df5ebf7cf3ed374222cc77ad92235cb0a98e986e964e36fff')
pkgver() {
- cd "$_pkgname"
+ cd "$_name"
- printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
+ printf 'r%s.%s' "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
+}
+
+prepare() {
+ cd "$_name"
+
+ for p in "$srcdir"/*.patch; do
+ patch -Np1 -i "$p"
+ done
}
build() {
- cd "$_pkgname"
+ cd "$_name"
./autogen.sh --prefix=/usr
make
}
package() {
- cd "$_pkgname"
+ cd "$_name"
make DESTDIR="$pkgdir/" install
}