ports/104434: sysutils/915resolution: depenguinate

Sam Lawrance lawrance at FreeBSD.org
Sun Oct 15 11:10:19 UTC 2006


>Number:         104434
>Category:       ports
>Synopsis:       sysutils/915resolution: depenguinate
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          update
>Submitter-Id:   current-users
>Arrival-Date:   Sun Oct 15 11:10:18 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Sam Lawrance
>Release:        FreeBSD 6.0-STABLE i386
>Organization:
>Environment:

>Description:
915resolution is a linux binary.  I was just thinking it would be
nice to have on FreeSBIE, but the linux dependencies hanging off
it are unattractive.

>How-To-Repeat:
	n/a

>Fix:
Please see the attached patch which modifies the port to build
a native version of 915resolution.

--- patch-915resolution begins here ---
Index: Makefile
===================================================================
RCS file: /home/pcvs/ports/sysutils/915resolution/Makefile,v
retrieving revision 1.3
diff -u -r1.3 Makefile
--- Makefile	28 Mar 2006 08:42:03 -0000	1.3
+++ Makefile	15 Oct 2006 10:48:52 -0000
@@ -6,6 +6,7 @@
 
 PORTNAME=	915resolution
 PORTVERSION=	0.5.2
+PORTREVISION=	1
 PORTEPOCH=	1
 CATEGORIES=	sysutils
 MASTER_SITES=	http://www.geocities.com/stomljen/ \
@@ -15,14 +16,14 @@
 MAINTAINER=	MrL0Lz at gmail.com
 COMMENT=	Resolution tool for Intel i915 video cards
 
-USE_LINUX=	yes
-NO_BUILD=	yes
-ONLY_FOR_ARCHS=	i386
-
 PLIST_FILES=	bin/915resolution
+ALL_TARGET=	915resolution
+
+do-build:
+	cd ${WRKSRC} && \
+		${CC} ${CFLAGS} 915resolution.c -o 915resolution
 
 do-install:
 	${INSTALL_PROGRAM} ${WRKSRC}/915resolution ${PREFIX}/bin
-	${BRANDELF} -t Linux ${PREFIX}/bin/915resolution
 
 .include <bsd.port.mk>
Index: pkg-descr
===================================================================
RCS file: /home/pcvs/ports/sysutils/915resolution/pkg-descr,v
retrieving revision 1.1
diff -u -r1.1 pkg-descr
--- pkg-descr	26 May 2005 21:33:34 -0000	1.1
+++ pkg-descr	15 Oct 2006 10:48:52 -0000
@@ -1,5 +1,4 @@
 This is a resolution hack for Intel 915 based video cards. Based on code
-written by Alain Poirer for Linux, modified by Steve Tomljenovic. Binary
-install, source code included.
+written by Alain Poirer for Linux, modified by Steve Tomljenovic.
 
 WWW: http://www.geocities.com/stomljen/
Index: files/patch-915resolution.c
===================================================================
RCS file: files/patch-915resolution.c
diff -N files/patch-915resolution.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ files/patch-915resolution.c	15 Oct 2006 10:48:52 -0000
@@ -0,0 +1,90 @@
+--- 915resolution.c.orig	Fri Feb  3 01:28:34 2006
++++ 915resolution.c	Sun Oct 15 20:39:56 2006
+@@ -21,8 +21,10 @@
+ #define __USE_GNU
+ #include <string.h>
+ #include <sys/mman.h>
++#include <machine/cpufunc.h>
++#define OUTB(a, b) outb(b, a)
++#define OUTL(a, b) outl(b, a)
+ #include <fcntl.h>
+-#include <sys/io.h>
+ #include <unistd.h>
+ #include <assert.h>
+ 
+@@ -161,7 +163,8 @@
+ void initialize_system(char * filename) {
+ 
+     if (!filename) {
+-        if (iopl(3) < 0) {
++        FILE* iof = fopen("/dev/io", "r");
++        if (iof == NULL) {
+             perror("Unable to obtain the proper IO permissions");
+             exit(2);
+         }
+@@ -169,7 +172,7 @@
+ }
+ 
+ cardinal get_chipset_id(void) {
+-    outl(0x80000000, 0xcf8);
++    OUTL(0x80000000, 0xcf8);
+     return inl(0xcfc);
+ }
+ 
+@@ -476,11 +479,11 @@
+         case CT_UNKWN:
+             break;
+         case CT_855GM:
+-            outl(0x8000005a, 0xcf8);
++            OUTL(0x8000005a, 0xcf8);
+             map->b1 = inb(0xcfe);
+             
+-            outl(0x8000005a, 0xcf8);
+-            outb(0x33, 0xcfe);
++            OUTL(0x8000005a, 0xcf8);
++            OUTB(0x33, 0xcfe);
+             break;
+         case CT_845G:
+         case CT_865G:
+@@ -488,13 +491,13 @@
+         case CT_915GM:
+         case CT_945G:
+         case CT_945GM:
+-            outl(0x80000090, 0xcf8);
++            OUTL(0x80000090, 0xcf8);
+             map->b1 = inb(0xcfd);
+             map->b2 = inb(0xcfe);
+             
+-            outl(0x80000090, 0xcf8);
+-            outb(0x33, 0xcfd);
+-            outb(0x33, 0xcfe);
++            OUTL(0x80000090, 0xcf8);
++            OUTB(0x33, 0xcfd);
++            OUTB(0x33, 0xcfe);
+             break;
+         }
+     }
+@@ -526,8 +529,8 @@
+         case CT_UNKWN:
+             break;
+         case CT_855GM:
+-            outl(0x8000005a, 0xcf8);
+-            outb(map->b1, 0xcfe);
++            OUTL(0x8000005a, 0xcf8);
++            OUTB(map->b1, 0xcfe);
+             break;
+         case CT_845G:
+         case CT_865G:
+@@ -535,9 +538,9 @@
+         case CT_915GM:
+         case CT_945G:
+         case CT_945GM:
+-            outl(0x80000090, 0xcf8);
+-            outb(map->b1, 0xcfd);
+-            outb(map->b2, 0xcfe);
++            OUTL(0x80000090, 0xcf8);
++            OUTB(map->b1, 0xcfd);
++            OUTB(map->b2, 0xcfe);
+             break;
+         }
+     }
--- patch-915resolution ends here ---


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



More information about the freebsd-ports-bugs mailing list