On Sun, Jan 13, 2013 at 03:40:36PM +0100, LEVAI Daniel wrote: > Hi! > > ian@ contacted me off-list to solve a problem with his mtp device. To be > perfectly honest, I don't use libmtp, but it seems that this update > solves one of his problems (regarding ill-behavioured locale detection > in the example utilities). > The new version also contains MTPZ support and more supported devices.
How about the following instead. Index: Makefile =================================================================== RCS file: /home/cvs/ports/devel/libmtp/Makefile,v retrieving revision 1.21 diff -u -p -r1.21 Makefile --- Makefile 16 Dec 2012 11:35:24 -0000 1.21 +++ Makefile 14 Jan 2013 13:37:47 -0000 @@ -2,9 +2,8 @@ COMMENT= Media Transfer Protocol (MTP) implementation -DISTNAME= libmtp-1.1.3 -REVISION= 0 -SHARED_LIBS += mtp 5.0 # 9.3 +DISTNAME= libmtp-1.1.5 +SHARED_LIBS += mtp 5.1 # 9.5 CATEGORIES= devel HOMEPAGE= http://libmtp.sourceforge.net/ Index: distinfo =================================================================== RCS file: /home/cvs/ports/devel/libmtp/distinfo,v retrieving revision 1.9 diff -u -p -r1.9 distinfo --- distinfo 23 Apr 2012 13:39:50 -0000 1.9 +++ distinfo 14 Jan 2013 13:37:09 -0000 @@ -1,5 +1,2 @@ -MD5 (libmtp-1.1.3.tar.gz) = EVKe7a8OH8AM3WEZ7sUl8A== -RMD160 (libmtp-1.1.3.tar.gz) = 3uGd7ssyO+opDRlgRmu09vO2/18= -SHA1 (libmtp-1.1.3.tar.gz) = qj3RATIHhNxMPg7otmmuTJA/YnU= -SHA256 (libmtp-1.1.3.tar.gz) = p5T4bLwdO0O2VNWgUATwmSX91E96jYfT8LTeQp596Pg= -SIZE (libmtp-1.1.3.tar.gz) = 689357 +SHA256 (libmtp-1.1.5.tar.gz) = eHZ5Fxuvizzy/MAxlscFq018vJab1x+dNpa+HOfxxjo= +SIZE (libmtp-1.1.5.tar.gz) = 723925 Index: patches/patch-src_mtpz_c =================================================================== RCS file: patches/patch-src_mtpz_c diff -N patches/patch-src_mtpz_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-src_mtpz_c 14 Jan 2013 15:44:23 -0000 @@ -0,0 +1,78 @@ +$OpenBSD$ +--- src/mtpz.c.orig Sun Sep 2 10:46:25 2012 ++++ src/mtpz.c Mon Jan 14 10:41:14 2013 +@@ -236,7 +236,7 @@ unsigned int mtpz_aes_gb9[]; + #define MTPZ_ENCRYPTIONBYTE2(val) (((val) >> 8) & 0xFF) + #define MTPZ_ENCRYPTIONBYTE3(val) (((val) >> 0) & 0xFF) + +-#define MTPZ_SWAP(x) __builtin_bswap32(x) ++#define MTPZ_SWAP(x) mtpz_bswap32(x) + + void mtpz_encryption_cipher(unsigned char *data, unsigned int len, char encrypt); + void mtpz_encryption_cipher_advanced(unsigned char *key, unsigned int key_len, unsigned char *data, unsigned int data_len, char encrypt); +@@ -248,6 +248,17 @@ void mtpz_encryption_encrypt_custom(unsigned char *dat + void mtpz_encryption_encrypt_mac(unsigned char *hash, unsigned int hash_length, unsigned char *seed, unsigned int seed_len, unsigned char *out); + + ++static inline uint32_t mtpz_bswap32(uint32_t x) ++{ ++#if defined __GNUC__ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) || defined(__clang__) ++ return __builtin_bswap32(x) ++#else ++ return (x >> 24) | ++ ((x >> 8) & 0x0000ff00) | ++ ((x << 8) & 0x00ff0000) | ++ (x << 24); ++#endif ++} + + + /* MTPZ RSA implementation */ +@@ -1574,11 +1585,11 @@ ptp_mtpz_validatehandshakeresponse (PTPParams* params, + mtpz_encryption_cipher_advanced((unsigned char *)hash_key, 16, act_msg, 832, 0); + + act_reader++; +- unsigned int certs_length = __builtin_bswap32(*(unsigned int *)(act_reader)); ++ unsigned int certs_length = MTPZ_SWAP(*(unsigned int *)(act_reader)); + act_reader += 4; + act_reader += certs_length; + +- unsigned int rand_length = __builtin_bswap32(*(unsigned short *)(act_reader) << 16); ++ unsigned int rand_length = MTPZ_SWAP(*(unsigned short *)(act_reader) << 16); + act_reader += 2; + unsigned char *rand_data = (unsigned char *)malloc(rand_length); + memcpy(rand_data, act_reader, rand_length); +@@ -1590,19 +1601,19 @@ ptp_mtpz_validatehandshakeresponse (PTPParams* params, + free(rand_data); + act_reader += rand_length; + +- unsigned int dev_rand_length = __builtin_bswap32(*(unsigned short *)(act_reader) << 16); ++ unsigned int dev_rand_length = MTPZ_SWAP(*(unsigned short *)(act_reader) << 16); + act_reader += 2; + act_reader += dev_rand_length; + + act_reader++; + +- unsigned int sig_length = __builtin_bswap32(*(unsigned short *)(act_reader) << 16); ++ unsigned int sig_length = MTPZ_SWAP(*(unsigned short *)(act_reader) << 16); + act_reader += 2; + act_reader += sig_length; + + act_reader++; + +- unsigned int machash_length = __builtin_bswap32(*(unsigned short *)(act_reader) << 16); ++ unsigned int machash_length = MTPZ_SWAP(*(unsigned short *)(act_reader) << 16); + act_reader += 2; + unsigned char *machash_data = (unsigned char *)malloc(machash_length); + memcpy(machash_data, act_reader, machash_length); +@@ -1636,8 +1647,8 @@ ptp_mtpz_opensecuresyncsession (PTPParams* params, uns + mtpz_encryption_encrypt_mac(hash, 16, (unsigned char *)(&macCount), 4, mch); + + ret = ptp_mtpz_wmdrmpd_enabletrustedfilesoperations(params, +- __builtin_bswap32(hashparams[0]), __builtin_bswap32(hashparams[1]), +- __builtin_bswap32(hashparams[2]), __builtin_bswap32(hashparams[3])); ++ MTPZ_SWAP(hashparams[0]), MTPZ_SWAP(hashparams[1]), ++ MTPZ_SWAP(hashparams[2]), MTPZ_SWAP(hashparams[3])); + return ret; + }; + -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.