ports/140903: [patch] archivers/p7zip add option to build minimal possible executable supporting only 7zip archives

Eugene Perevyazko john at dnepro.net
Thu Nov 26 16:30:04 UTC 2009


>Number:         140903
>Category:       ports
>Synopsis:       [patch] archivers/p7zip add option to build minimal possible executable supporting only 7zip archives
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Thu Nov 26 16:30:03 UTC 2009
>Closed-Date:
>Last-Modified:
>Originator:     Eugene Perevyazko
>Release:        7.2
>Organization:
-
>Environment:
FreeBSD klinger 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Fri May  1 08:49:13 UTC 2009     root at walker.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  i386

>Description:
  In many cases current 7z/7za executable is an overkill with it's ability to handle tar, gzip and other file formats, because there exist native tools for this.
  This patch adds an option to allow build only 7zr executable which is the smallest and supports only 7zip file format.
>How-To-Repeat:

>Fix:


Patch attached with submission follows:

diff -ruN p7zip/Makefile p7zip.my/Makefile
--- p7zip/Makefile	2009-09-30 23:35:33.000000000 +0300
+++ p7zip.my/Makefile	2009-11-26 18:05:15.000000000 +0200
@@ -13,21 +13,45 @@
 
 MAINTAINER=	nox at FreeBSD.org
 COMMENT=	File archiver with high compression ratio
+OPTIONS=	MINIMAL	"Support only .7z file format" off
 
 USE_BZIP2=	yes
 MAKEFILE=	makefile
 WRKSRC=		${WRKDIR}/${PORTNAME}_${PORTVERSION}
-MAN1=		7z.1 7za.1 7zr.1 p7zip.1
 MAKE_JOBS_UNSAFE=	yes
 
-DLLDIR=		${PREFIX}/libexec/p7zip
-PLIST_SUB=	MODULES=""
-ALL_TARGET=	7z 7za 7zr Client7z sfx
-7ZBIN=		7z 7za 7zr Client7z 7zCon.sfx
-.if defined(WITHOUT_MODULES)
+.include <bsd.port.options.mk>
+
+.if defined(WITH_MINIMAL)
+MAN1=		7zr.1
+MLINKS=		7zr.1 7z.1
 PLIST_SUB=	MODULES="@comment "
+ALL_TARGET=	7zr
+7ZBIN=		7zr
+PLIST_FILES=	bin/7zr \
+		bin/7z
+.else
+MAN1=		7z.1 7za.1 7zr.1 p7zip.1
+DLLDIR=		${PREFIX}/libexec/p7zip
 ALL_TARGET=	7za 7zr sfx
 7ZBIN=		7za 7zr 7zCon.sfx
+PLIST_DIRS=	libexec/p7zip
+PLIST_FILES=	bin/7z \
+		bin/7za \
+		bin/7zr \
+		bin/p7zip \
+		libexec/p7zip/7za \
+		libexec/p7zip/7zr \
+		libexec/p7zip/7zCon.sfx
+.if !defined(WITHOUT_MODULES)
+ALL_TARGET=	7z 7za 7zr Client7z sfx
+7ZBIN=		7z 7za 7zr Client7z 7zCon.sfx
+PLIST_DIRS+=	libexec/p7zip/Codecs
+PLIST_FILES+=	libexec/p7zip/7z \
+		libexec/p7zip/7z.so \
+		libexec/p7zip/Client7z \
+		libexec/p7zip/Codecs/Rar29.so
+.endif
 .endif
 
 .include <bsd.port.pre.mk>
@@ -51,6 +75,10 @@
 	${MV} ${WRKSRC}/contrib/gzip-like_CLI_wrapper_for_7z/man1/p7zip.1 ${WRKSRC}/man1/
 
 do-install:
+.if defined(WITH_MINIMAL)
+	cd ${WRKSRC}/bin/&&${INSTALL_PROGRAM} ${7ZBIN} ${PREFIX}/bin/
+	${LN} -sf ${PREFIX}/bin/7zr ${PREFIX}/bin/7z
+.else
 	${INSTALL} -d ${DLLDIR}/
 	cd ${WRKSRC}/bin/&&${INSTALL_PROGRAM} ${7ZBIN} ${DLLDIR}/
 	${INSTALL_SCRIPT} ${FILESDIR}/7z ${PREFIX}/bin/
@@ -62,6 +90,7 @@
 	${INSTALL_PROGRAM} ${WRKSRC}/bin/Codecs/Rar29.so ${DLLDIR}/Codecs/
 	${INSTALL_PROGRAM} ${WRKSRC}/bin/7z.so ${DLLDIR}/
 .endif
+.endif
 .if !defined(NOPORTDOCS)
 	@cd ${WRKSRC}/DOCS/&&${COPYTREE_SHARE} . ${DOCSDIR}/
 .endif
diff -ruN p7zip/pkg-plist p7zip.my/pkg-plist
--- p7zip/pkg-plist	2007-12-15 22:01:49.000000000 +0200
+++ p7zip.my/pkg-plist	2009-11-26 17:23:46.000000000 +0200
@@ -1,16 +1,3 @@
-bin/7z
-bin/7za
-bin/7zr
-bin/p7zip
-%%MODULES%%libexec/p7zip/7z
-%%MODULES%%libexec/p7zip/7z.so
-%%MODULES%%libexec/p7zip/Client7z
-libexec/p7zip/7za
-libexec/p7zip/7zr
-libexec/p7zip/7zCon.sfx
-%%MODULES%%libexec/p7zip/Codecs/Rar29.so
-%%MODULES%%@dirrm libexec/p7zip/Codecs
- at dirrm libexec/p7zip
 %%PORTDOCS%%%%DOCSDIR%%/7zC.txt
 %%PORTDOCS%%%%DOCSDIR%%/7zFormat.txt
 %%PORTDOCS%%%%DOCSDIR%%/License.txt


>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list