Compiling audio/funktrackergold appears to work fine, but the program will segfault on startup. Fix: Beyond my abilities, but I figured I'd at least make it known. This is old and probably not well used in light of audio/cheesetracker being an alternative. I hate to suggest this but it's possible this port is end-of-life. How-To-Repeat: # cd /usr/ports/audio/funktrackergold ; make install ; funktrackergold and wait for the inevitable. Do realize this is an i386-only port.
[ Maintainer Cc:ed ] The reason for this is that getenv ("OSTYPE") returns NULL. The following patch works around the problem (IMHO, OS detection at build time is fine when a program build from the FreeBSD ports collection) ----- snip ----- --- funkgold_misc.c.orig Sun Jun 21 08:26:46 1998 +++ funkgold_misc.c Sat Sep 11 17:17:44 2004 @@ -30,22 +29,7 @@ void get_environment(void) { - char *os_type = getenv("OSTYPE"); - register int x; - char *os_tt[] = { - "Linux", - "FreeBSD" - }; - - for(x = 0;x < SO_TT_SIZE;x++) - if(strcmp(os_tt[x],os_type) == 0) - break; - switch(x) - { - case 0: funk_info.funk_cpu_type = FKCPU_LINUX; break; - case 1: funk_info.funk_cpu_type = FKCPU_FREEBSD; break; - default: funk_info.funk_cpu_type = FKCPU_UNKNOWN; break; - } + funk_info.funk_cpu_type = FKCPU_FREEBSD; } /*************************************************************************** ----- snip ----- The more interesting point is why the following little C program fails (please forgive me if I am overlooking something really stupid ;-) (please note that this works fine for other environment variables like HOME, PAGER, ...) int main (int argc, char* argv[]) { char *os = (char*)getenv ("OSTYPE"); printf ("%s\n", os); return 0; }
Responsible Changed From-To: freebsd-ports-bugs->markp Over to maintainer.
State Changed From-To: open->closed Committed, thanks!