From bdb407082f1dd6e7fd3370553d2d31c679a51f97 Mon Sep 17 00:00:00 2001 From: Max Khon Date: Sun, 25 Jan 2004 12:56:50 +0000 Subject: New port: cloop-utils. cloop-utils are tools for creating and extracting cloop V2.0 compressed read-only filesystem images. --- sysutils/cloop-utils/Makefile | 28 +++++++++++ sysutils/cloop-utils/distinfo | 1 + sysutils/cloop-utils/files/patch-Makefile | 16 ++++++ .../cloop-utils/files/patch-create_compressed_fs.c | 57 ++++++++++++++++++++++ .../files/patch-extract_compressed_fs.c | 33 +++++++++++++ sysutils/cloop-utils/pkg-descr | 4 ++ sysutils/cloop-utils/pkg-plist | 2 + 7 files changed, 141 insertions(+) create mode 100644 sysutils/cloop-utils/Makefile create mode 100644 sysutils/cloop-utils/distinfo create mode 100644 sysutils/cloop-utils/files/patch-Makefile create mode 100644 sysutils/cloop-utils/files/patch-create_compressed_fs.c create mode 100644 sysutils/cloop-utils/files/patch-extract_compressed_fs.c create mode 100644 sysutils/cloop-utils/pkg-descr create mode 100644 sysutils/cloop-utils/pkg-plist (limited to 'sysutils/cloop-utils') diff --git a/sysutils/cloop-utils/Makefile b/sysutils/cloop-utils/Makefile new file mode 100644 index 000000000000..8174e4d5cc75 --- /dev/null +++ b/sysutils/cloop-utils/Makefile @@ -0,0 +1,28 @@ +# New ports collection makefile for: cloop-utils +# Date created: 19 Jan 2004 +# Whom: Max Khon +# +# $FreeBSD$ +# + +PORTNAME= cloop-utils +PORTVERSION= 2.00 +CATEGORIES= sysutils +MASTER_SITES= http://developer.linuxtag.net/knoppix/sources/ +DISTNAME= cloop_${PORTVERSION}-1 + +MAINTAINER= fjoe@freebsd.org +COMMENT= Compressed loop FS utils + +WRKSRC= ${WRKDIR}/cloop-${PORTVERSION} +USE_GMAKE= yes +MAKE_ENV= APPSONLY=yes +PORTDOCS= README + +do-install: + ${INSTALL_PROGRAM} ${WRKSRC}/create_compressed_fs ${PREFIX}/bin + ${INSTALL_PROGRAM} ${WRKSRC}/extract_compressed_fs ${PREFIX}/bin + ${MKDIR} ${DOCSDIR} + ${INSTALL_DATA} ${WRKSRC}/README ${DOCSDIR} + +.include diff --git a/sysutils/cloop-utils/distinfo b/sysutils/cloop-utils/distinfo new file mode 100644 index 000000000000..4362357e1b80 --- /dev/null +++ b/sysutils/cloop-utils/distinfo @@ -0,0 +1 @@ +MD5 (cloop_2.00-1.tar.gz) = a18f5d97bae863b823c42cf6722ef769 diff --git a/sysutils/cloop-utils/files/patch-Makefile b/sysutils/cloop-utils/files/patch-Makefile new file mode 100644 index 000000000000..153f237ebbbb --- /dev/null +++ b/sysutils/cloop-utils/files/patch-Makefile @@ -0,0 +1,16 @@ +--- Makefile.orig Thu Jan 15 10:34:31 2004 ++++ Makefile Thu Jan 15 10:34:31 2004 +@@ -23,8 +23,12 @@ + endif + + KERNOBJ:=compressed_loop.o ++ALL_TARGETS = create_compressed_fs extract_compressed_fs ++ifndef APPSONLY ++ALL_TARGETS += cloop.o ++endif + +-all: cloop.o create_compressed_fs extract_compressed_fs ++all: $(ALL_TARGETS) + + cloop.o: compressed_loop.o + $(LD) -r -o $@ $^ diff --git a/sysutils/cloop-utils/files/patch-create_compressed_fs.c b/sysutils/cloop-utils/files/patch-create_compressed_fs.c new file mode 100644 index 000000000000..d974375dc72f --- /dev/null +++ b/sysutils/cloop-utils/files/patch-create_compressed_fs.c @@ -0,0 +1,57 @@ +--- create_compressed_fs.c.orig Sun Oct 26 05:15:22 2003 ++++ create_compressed_fs.c Tue Jan 20 03:37:34 2004 +@@ -18,7 +18,30 @@ + #include + #include + #include ++#if defined(__FreeBSD__) ++#include ++#include ++typedef uint64_t loff_t; ++#ifndef htobe64 ++static __inline __uint64_t ++__bswap64(__uint64_t _x) ++{ ++ ++ return ((_x >> 56) | ((_x >> 40) & 0xff00) | ((_x >> 24) & 0xff0000) | ++ ((_x >> 8) & 0xff000000) | ((_x << 8) & ((__uint64_t)0xff << 32)) | ++ ((_x << 24) & ((__uint64_t)0xff << 40)) | ++ ((_x << 40) & ((__uint64_t)0xff << 48)) | ((_x << 56))); ++} ++#if BYTE_ORDER == LITTLE_ENDIAN ++#define htobe64(x) __bswap64(x) ++#else ++#define htobe64(x) ++#endif ++#endif ++#define __cpu_to_be64 htobe64 ++#else + #include ++#endif + #include + #include + #include "compressed_loop.h" +@@ -195,6 +218,23 @@ + cbp=cbp->next; + free(compressed_blocks); compressed_blocks=cbp; + } ++#if defined(__FreeBSD__) ++ /* ++ * FreeBSD requires padding to 512 byte boundary ++ */ ++ bytes_so_far = lseek(STDOUT_FILENO, 0, SEEK_END); ++ if (bytes_so_far % 512) ++ { ++ static char padding[512]; ++ off_t len = 512 - bytes_so_far % 512; ++ ++ if (write(STDOUT_FILENO, padding, len) != len) ++ { ++ perror("writing padding block"); ++ return 1; ++ } ++ } ++#endif + fprintf(stderr,"Done.\n"); + return 0; + } diff --git a/sysutils/cloop-utils/files/patch-extract_compressed_fs.c b/sysutils/cloop-utils/files/patch-extract_compressed_fs.c new file mode 100644 index 000000000000..551ab3ac1290 --- /dev/null +++ b/sysutils/cloop-utils/files/patch-extract_compressed_fs.c @@ -0,0 +1,33 @@ +--- extract_compressed_fs.c.orig Sun Oct 26 04:57:09 2003 ++++ extract_compressed_fs.c Mon Jan 19 05:28:47 2004 +@@ -8,7 +8,30 @@ + #include + #include + #include ++#if defined(__FreeBSD__) ++#include ++#include ++typedef uint64_t loff_t; ++#ifndef be64toh ++static __inline __uint64_t ++__bswap64(__uint64_t _x) ++{ ++ ++ return ((_x >> 56) | ((_x >> 40) & 0xff00) | ((_x >> 24) & 0xff0000) | ++ ((_x >> 8) & 0xff000000) | ((_x << 8) & ((__uint64_t)0xff << 32)) | ++ ((_x << 24) & ((__uint64_t)0xff << 40)) | ++ ((_x << 40) & ((__uint64_t)0xff << 48)) | ((_x << 56))); ++} ++#if BYTE_ORDER == LITTLE_ENDIAN ++#define be64toh(x) __bswap64(x) ++#else ++#define be64toh(x) ++#endif ++#endif ++#define __be64_to_cpu be64toh ++#else + #include ++#endif + #include "compressed_loop.h" + + struct compressed_block diff --git a/sysutils/cloop-utils/pkg-descr b/sysutils/cloop-utils/pkg-descr new file mode 100644 index 000000000000..c747b18a0eb8 --- /dev/null +++ b/sysutils/cloop-utils/pkg-descr @@ -0,0 +1,4 @@ +Tools for creating and extracting read-only compressed filesystem images +in cloop V2.0 format. + +WWW: http://developer.linuxtag.net/knoppix/sources/ diff --git a/sysutils/cloop-utils/pkg-plist b/sysutils/cloop-utils/pkg-plist new file mode 100644 index 000000000000..ecc556caea0b --- /dev/null +++ b/sysutils/cloop-utils/pkg-plist @@ -0,0 +1,2 @@ +bin/create_compressed_fs +bin/extract_compressed_fs -- cgit v1.2.3