ports/139977: new port: sysutils/fconfig

Andrew Thompson thompsa at FreeBSD.org
Sun Oct 25 23:40:02 UTC 2009


>Number:         139977
>Category:       ports
>Synopsis:       new port: sysutils/fconfig
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          maintainer-update
>Submitter-Id:   current-users
>Arrival-Date:   Sun Oct 25 23:40:00 UTC 2009
>Closed-Date:
>Last-Modified:
>Originator:     Andrew Thompson
>Release:        FreeBSD 9.0-CURRENT i386
>Organization:
>Environment:
System: FreeBSD burger.fud.org.nz 9.0-CURRENT FreeBSD 9.0-CURRENT #0 r198348M: Fri Oct 23 08:58:52 NZDT 2009 thompsa at burger.fud.org.nz:/usr/obj/home/thompsa/scratch/fbsvn/head/sys/BURGER i386


	
>Description:
	Add fconfig for managing RedBoot embedded boot config.
>How-To-Repeat:
	
>Fix:
	Also available at http://people.freebsd.org/~thompsa/fconfig.tar


# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	sysutils
#	sysutils/fconfig
#	sysutils/fconfig/Makefile
#	sysutils/fconfig/distinfo
#	sysutils/fconfig/pkg-descr
#	sysutils/fconfig/files
#	sysutils/fconfig/files/patch-fconfig.diff
#
echo c - sysutils
mkdir -p sysutils > /dev/null 2>&1
echo c - sysutils/fconfig
mkdir -p sysutils/fconfig > /dev/null 2>&1
echo x - sysutils/fconfig/Makefile
sed 's/^X//' >sysutils/fconfig/Makefile << 'df88c006be046ec06ddb3d9e9ee7072a'
X# New ports collection makefile for:	fconfig
X# Date created:			Oct 26, 2009
X# Whom:				thompsa at FreeBSD.org
X#
X# $FreeBSD$
X#
X
XPORTNAME=	fconfig
XPORTVERSION=	20080329
XCATEGORIES=	sysutils
XMASTER_SITES=	http://downloads.openwrt.org/sources/ \
X		http://andrzejekiert.ovh.org/software/fconfig/
X
XMAINTAINER=	thompsa at FreeBSD.org
XCOMMENT=	Read and modify RedBoot embedded boot configuration
X
XWRKSRC=		${WRKDIR}/${PORTNAME}
XUSE_GMAKE=	yes
XPLIST_FILES=	sbin/fconfig
X
Xdo-install:
X	${INSTALL_PROGRAM} ${WRKSRC}/fconfig ${PREFIX}/sbin
X
X.include <bsd.port.mk>
df88c006be046ec06ddb3d9e9ee7072a
echo x - sysutils/fconfig/distinfo
sed 's/^X//' >sysutils/fconfig/distinfo << 'd2298dd089beb180a9a57594cba39088'
XMD5 (fconfig-20080329.tar.gz) = dac355e9f2a0f48c414c52e2034b6346
XSHA256 (fconfig-20080329.tar.gz) = 4ff0e8f07e35e46b705c0dbe9d9544ede01ea092a69e3f7db03e55a3f2bb8eb7
XSIZE (fconfig-20080329.tar.gz) = 10179
d2298dd089beb180a9a57594cba39088
echo x - sysutils/fconfig/pkg-descr
sed 's/^X//' >sysutils/fconfig/pkg-descr << '2f1d2fb3743b8f870439911feb359754'
Xfconfig is an application that allows to read and write RedBoot's configuration
Xparameters. 
X
XExamples, 
X fconfig -l
X fconfig -w -n console_baud_rate -x 115200
X
XWWW: http://andrzejekiert.ovh.org/software.html.en
2f1d2fb3743b8f870439911feb359754
echo c - sysutils/fconfig/files
mkdir -p sysutils/fconfig/files > /dev/null 2>&1
echo x - sysutils/fconfig/files/patch-fconfig.diff
sed 's/^X//' >sysutils/fconfig/files/patch-fconfig.diff << '881cf4ebcb2e08596c43706cdd954c21'
Xdiff -urN crunchfc.c crunchfc.c
X--- crunchfc.c	2008-03-30 01:21:47.000000000 +1300
X+++ crunchfc.c	2009-10-26 09:13:04.000000000 +1300
X@@ -407,6 +407,7 @@
X 	MESSAGE(VERB_HIGH, "Writing %d bytes at offset %d\n", 
X 		TYPE_SIZE(key.type), offset);
X 
X+#if !defined(__FreeBSD__)
X 	/* do an actual write to the device or file */
X 	if (lseek(data->fd, data->offset+offset, SEEK_SET) == -1) {
X 		MESSAGE(VERB_LOW, "lseek() failed\n");
X@@ -416,6 +417,7 @@
X 		MESSAGE(VERB_LOW, "write() failed\n");
X 		return -1;
X 	}
X+#endif
X 	/* keep our buffer in sync with the device or file */
X 	memcpy(key.dataval, buf, TYPE_SIZE(key.type));
X 
X@@ -451,6 +453,7 @@
X 
X 	MESSAGE(VERB_HIGH, "Writing CRC at offset %d\n", len-4);
X 
X+#if !defined(__FreeBSD__)
X 	/* do an actual write to the device or file */
X 	if (lseek(data->fd, data->offset+len-4, SEEK_SET) == -1) {
X 		MESSAGE(VERB_LOW, "CRC: lseek() failed\n");
X@@ -460,6 +463,7 @@
X 		MESSAGE(VERB_LOW, "CRC: write() failed\n");
X 		return;
X 	}
X+#endif
X 	/* keep our buffer in sync with the device or file */
X 	memcpy(buf+len-4, &crc, sizeof(crc));
X 
Xdiff -urN fconfig.c fconfig.c
X--- fconfig.c	2008-03-30 01:21:48.000000000 +1300
X+++ fconfig.c	2009-10-26 10:11:01.000000000 +1300
X@@ -45,6 +45,8 @@
X #include "ftypes.h"
X #include "crunchfc.h"
X 
X+#define REDBOOT_DEV	"/dev/redboot/RedBoot config"
X+
X /*
X  * Parse type name, return type ID. 
X  * Type ID is the type number in the type table. 
X@@ -163,6 +165,16 @@
X 
X 	recalculate_crc(&data);
X 
X+#if defined(__FreeBSD__)
X+	/* FreeBSD needs to do a full sector write */
X+	if (lseek(data.fd, 0, SEEK_SET) == -1) {
X+		MESSAGE(VERB_LOW, "lseek() failed\n");
X+		return -1;
X+	}	
X+	if (write(data.fd, data.buf, MAX_CONFIG_DATA) == -1) {
X+		MESSAGE(VERB_LOW, "write() failed\n");
X+	}
X+#endif
X 	close_fconfig_handle(&data);
X 	return 0;
X 
X@@ -292,8 +304,12 @@
X 	}
X 
X 	if (device == NULL) {
X+#if defined(__FreeBSD__)
X+		device = REDBOOT_DEV;
X+#else
X 		MESSAGE(VERB_LOW, "You must provide a device name.\n");
X 		exit(1);
X+#endif
X 	}
X 
X 	switch (mode) {
Xdiff -urN ftypes.c ftypes.c
X--- ftypes.c	2006-03-15 03:18:18.000000000 +1300
X+++ ftypes.c	2009-10-26 10:07:04.000000000 +1300
X@@ -21,8 +21,13 @@
X #include <arpa/inet.h>
X 
X /* For ether_aton */
X+#if defined(__FreeBSD__)
X+#include <sys/types.h>
X+#include <net/ethernet.h>
X+#else
X #include <net/ethernet.h>
X #include <netinet/ether.h>
X+#endif
X 
X #include <stdlib.h>
X #include <stdio.h>
881cf4ebcb2e08596c43706cdd954c21
exit

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



More information about the freebsd-ports-bugs mailing list