Tue Jul 30 00:06:50 2019 UTC ()
fasttracker2: Fixes builds for SmartOS.

1. Adds the __sun / sun macro check.

2. libiconv is now explicitly linked to allow multi-platform builds.

3. Uses stat(2) in SmartOS for checking directory types.

Thanks to wilbury for testing.


(fox)
diff -r1.31 -r1.32 pkgsrc/audio/fasttracker2/Makefile
diff -r1.30 -r1.31 pkgsrc/audio/fasttracker2/distinfo
diff -r1.4 -r1.5 pkgsrc/audio/fasttracker2/patches/patch-src_ft2__diskop.c
diff -r1.3 -r1.4 pkgsrc/audio/fasttracker2/patches/patch-src_ft2__unicode.c

cvs diff -r1.31 -r1.32 pkgsrc/audio/fasttracker2/Makefile (expand / switch to unified diff)

--- pkgsrc/audio/fasttracker2/Makefile 2019/07/27 21:26:06 1.31
+++ pkgsrc/audio/fasttracker2/Makefile 2019/07/30 00:06:50 1.32
@@ -1,42 +1,44 @@ @@ -1,42 +1,44 @@
1# $NetBSD: Makefile,v 1.31 2019/07/27 21:26:06 fox Exp $ 1# $NetBSD: Makefile,v 1.32 2019/07/30 00:06:50 fox Exp $
2 2
3DISTNAME= ft2clone-${DISTVERSION}-code 3DISTNAME= ft2clone-${DISTVERSION}-code
4PKGNAME= fasttracker2-${DISTVERSION:C/b/2./} 4PKGNAME= fasttracker2-${DISTVERSION:C/b/2./}
5DISTVERSION= b162 5DISTVERSION= b162
6PKGREVISION= 2 6PKGREVISION= 2
7CATEGORIES= audio 7CATEGORIES= audio
8MASTER_SITES= https://16-bits.org/ \ 8MASTER_SITES= https://16-bits.org/ \
9 ${MASTER_SITE_FREEBSD_LOCAL:=ehaupt/} 9 ${MASTER_SITE_FREEBSD_LOCAL:=ehaupt/}
10EXTRACT_SUFX= .zip 10EXTRACT_SUFX= .zip
11 11
12MAINTAINER= fox@NetBSD.org 12MAINTAINER= fox@NetBSD.org
13HOMEPAGE= https://16-bits.org/ 13HOMEPAGE= https://16-bits.org/
14COMMENT= Portable Fasttracker II clone in C using SDL 2 14COMMENT= Portable Fasttracker II clone in C using SDL 2
15LICENSE= modified-bsd AND cc-by-nc-sa-v4.0-license 15LICENSE= modified-bsd AND cc-by-nc-sa-v4.0-license
16 16
17WRKSRC= ${WRKDIR}/ft2-clone-code 17WRKSRC= ${WRKDIR}/ft2-clone-code
18USE_LANGUAGES= c c++ 18USE_LANGUAGES= c c++
19 19
20LDFLAGS+= -lSDL2 -lpthread -lstdc++ -lm 20LDFLAGS+= -lSDL2 -lpthread -lstdc++ -lm
 21LDFLAGS.SunOS+= -liconv
21 22
22INSTALLATION_DIRS+= bin share/pixmaps 23INSTALLATION_DIRS+= bin share/pixmaps
23 24
24SUBST_CLASSES+= d2u 25SUBST_CLASSES+= d2u
25SUBST_MESSAGE.d2u= Converting CRLF to LF. 26SUBST_MESSAGE.d2u= Converting CRLF to LF.
26SUBST_STAGE.d2u= post-extract 27SUBST_STAGE.d2u= post-extract
27SUBST_FILES.d2u= src/*.[ch] 28SUBST_FILES.d2u= src/*.[ch]
28SUBST_FILTER_CMD.d2u= ${TR} -d '\r' 29SUBST_FILTER_CMD.d2u= ${TR} -d '\r'
29 30
30do-build: 31do-build:
31 ${CC} ${CFLAGS} ${LDFLAGS} \ 32 ${CC} ${CFLAGS} ${LDFLAGS} \
32 ${WRKSRC}/src/rtmidi/*.cpp ${WRKSRC}/src/gfxdata/*.c ${WRKSRC}/src/*.c \ 33 ${WRKSRC}/src/rtmidi/*.cpp ${WRKSRC}/src/gfxdata/*.c ${WRKSRC}/src/*.c \
33 -o ${WRKSRC}/release/other/ft2-clone 34 -o ${WRKSRC}/release/other/ft2-clone
34 35
35do-install: 36do-install:
36 ${INSTALL_PROGRAM} ${WRKSRC}/release/other/ft2-clone \ 37 ${INSTALL_PROGRAM} ${WRKSRC}/release/other/ft2-clone \
37 ${DESTDIR}${PREFIX}/bin 38 ${DESTDIR}${PREFIX}/bin
38 ${INSTALL_DATA} ${WRKSRC}/src/gfxdata/icon/ft2-clone.ico \ 39 ${INSTALL_DATA} ${WRKSRC}/src/gfxdata/icon/ft2-clone.ico \
39 ${DESTDIR}${PREFIX}/share/pixmaps 40 ${DESTDIR}${PREFIX}/share/pixmaps
40 41
 42.include "../../converters/libiconv/buildlink3.mk"
41.include "../../devel/SDL2/buildlink3.mk" 43.include "../../devel/SDL2/buildlink3.mk"
42.include "../../mk/bsd.pkg.mk" 44.include "../../mk/bsd.pkg.mk"

cvs diff -r1.30 -r1.31 pkgsrc/audio/fasttracker2/distinfo (expand / switch to unified diff)

--- pkgsrc/audio/fasttracker2/distinfo 2019/07/23 08:20:22 1.30
+++ pkgsrc/audio/fasttracker2/distinfo 2019/07/30 00:06:50 1.31
@@ -1,10 +1,10 @@ @@ -1,10 +1,10 @@
1$NetBSD: distinfo,v 1.30 2019/07/23 08:20:22 fox Exp $ 1$NetBSD: distinfo,v 1.31 2019/07/30 00:06:50 fox Exp $
2 2
3SHA1 (ft2clone-b162-code.zip) = 4616581dac4cd8b498c88cad381dd9910b326390 3SHA1 (ft2clone-b162-code.zip) = 4616581dac4cd8b498c88cad381dd9910b326390
4RMD160 (ft2clone-b162-code.zip) = a24993258f783e345f812f75a35a703154fb0aec 4RMD160 (ft2clone-b162-code.zip) = a24993258f783e345f812f75a35a703154fb0aec
5SHA512 (ft2clone-b162-code.zip) = 4b85514aece028075e8e5017c3b0c26638f0c74e18ac669788393a03457cb903959a548de9b1ca249eab8e629e18503dd1a7519aa81645a26e8f25684c4ec817 5SHA512 (ft2clone-b162-code.zip) = 4b85514aece028075e8e5017c3b0c26638f0c74e18ac669788393a03457cb903959a548de9b1ca249eab8e629e18503dd1a7519aa81645a26e8f25684c4ec817
6Size (ft2clone-b162-code.zip) = 3953315 bytes 6Size (ft2clone-b162-code.zip) = 3953315 bytes
7SHA1 (patch-src_ft2__diskop.c) = 0ade49429ec36d44b6cb6bc3b829317fcd08df81 7SHA1 (patch-src_ft2__diskop.c) = 054e62ba9b512ea0297874988252e7fd0db4e162
8SHA1 (patch-src_ft2__header.h) = 738181fabffcdcaa5ed7a4b1ae533246b6788bff 8SHA1 (patch-src_ft2__header.h) = 738181fabffcdcaa5ed7a4b1ae533246b6788bff
9SHA1 (patch-src_ft2__sample__ed.c) = 5cb4bbdb17d6e7cd98d378fe7dac8524630783c0 9SHA1 (patch-src_ft2__sample__ed.c) = 5cb4bbdb17d6e7cd98d378fe7dac8524630783c0
10SHA1 (patch-src_ft2__unicode.c) = 3dca4d5b2de1a2794bde7060d2f7bf6f4923c91c 10SHA1 (patch-src_ft2__unicode.c) = bca10844af2298f77c4f2a8580d030bf2ad54364

cvs diff -r1.4 -r1.5 pkgsrc/audio/fasttracker2/patches/Attic/patch-src_ft2__diskop.c (expand / switch to unified diff)

--- pkgsrc/audio/fasttracker2/patches/Attic/patch-src_ft2__diskop.c 2019/06/20 11:39:06 1.4
+++ pkgsrc/audio/fasttracker2/patches/Attic/patch-src_ft2__diskop.c 2019/07/30 00:06:50 1.5
@@ -1,16 +1,69 @@ @@ -1,16 +1,69 @@
1$NetBSD: patch-src_ft2__diskop.c,v 1.4 2019/06/20 11:39:06 fox Exp $ 1$NetBSD: patch-src_ft2__diskop.c,v 1.5 2019/07/30 00:06:50 fox Exp $
2 2
3Added <sys/types.h> / <sys/stat.h> to prevent "unknown type name" 31. Added <sys/types.h> / <sys/stat.h> to prevent "unknown type name"
4(dev_t, ino_t and nlink_t) error from the included <fts.h>. 4 (dev_t, ino_t and nlink_t) error from the included <fts.h>.
5 5
6--- src/ft2_diskop.c.orig 2019-04-19 01:53:39.359713817 +0000 62. Added SunOS / SmartOS compatibility.
 7
 8--- src/ft2_diskop.c.orig 2019-06-20 21:20:34.000000000 +0000
7+++ src/ft2_diskop.c 9+++ src/ft2_diskop.c
8@@ -15,6 +15,8 @@ 10@@ -15,6 +15,8 @@
9 #include <direct.h> 11 #include <direct.h>
10 #include <shlobj.h> // SHGetFolderPathW() 12 #include <shlobj.h> // SHGetFolderPathW()
11 #else 13 #else
12+#include <sys/types.h> 14+#include <sys/types.h>
13+#include <sys/stat.h> 15+#include <sys/stat.h>
14 #include <fts.h> // for fts_open() and stuff in recursiveDelete() 16 #include <fts.h> // for fts_open() and stuff in recursiveDelete()
15 #include <unistd.h> 17 #include <unistd.h>
16 #include <dirent.h> 18 #include <dirent.h>
 19@@ -1395,6 +1397,10 @@ static int8_t findFirst(DirRec *searchRe
 20 int64_t fSize;
 21 #endif
 22
 23+#if defined(__sun) || defined(sun)
 24+ struct stat s;
 25+#endif
 26+
 27 searchRec->nameU = NULL; // this one must be initialized
 28
 29 #ifdef _WIN32
 30@@ -1422,9 +1428,19 @@ static int8_t findFirst(DirRec *searchRe
 31 return LFF_SKIP;
 32
 33 searchRec->filesize = 0;
 34+
 35+#if defined(__sun) || defined(sun)
 36+ stat(fData->d_name, &s);
 37+ searchRec->isDir = (s.st_mode != S_IFDIR) ? true : false;
 38+#else
 39 searchRec->isDir = (fData->d_type == DT_DIR) ? true : false;
 40+#endif
 41
 42+#if defined(__sun) || defined(sun)
 43+ if (s.st_mode == S_IFLNK)
 44+#else
 45 if (fData->d_type == DT_UNKNOWN || fData->d_type == DT_LNK)
 46+#endif
 47 {
 48 if (stat(fData->d_name, &st) == 0)
 49 {
 50@@ -1488,9 +1504,19 @@ static int8_t findNext(DirRec *searchRec
 51 return LFF_SKIP;
 52
 53 searchRec->filesize = 0;
 54+
 55+#if defined(__sun) || defined(sun)
 56+ stat(fData->d_name, &s);
 57+ searchRec->isDir = (s.st_mode != S_IFDIR) ? true : false;
 58+#else
 59 searchRec->isDir = (fData->d_type == DT_DIR) ? true : false;
 60+#endif
 61
 62+#if defined(__sun) || defined(sun)
 63+ if (s.st_mode == S_IFLNK)
 64+#else
 65 if (fData->d_type == DT_UNKNOWN || fData->d_type == DT_LNK)
 66+#endif
 67 {
 68 if (stat(fData->d_name, &st) == 0)
 69 {

cvs diff -r1.3 -r1.4 pkgsrc/audio/fasttracker2/patches/Attic/patch-src_ft2__unicode.c (expand / switch to unified diff)

--- pkgsrc/audio/fasttracker2/patches/Attic/patch-src_ft2__unicode.c 2019/06/20 11:39:06 1.3
+++ pkgsrc/audio/fasttracker2/patches/Attic/patch-src_ft2__unicode.c 2019/07/30 00:06:50 1.4
@@ -1,43 +1,45 @@ @@ -1,43 +1,45 @@
1$NetBSD: patch-src_ft2__unicode.c,v 1.3 2019/06/20 11:39:06 fox Exp $ 1$NetBSD: patch-src_ft2__unicode.c,v 1.4 2019/07/30 00:06:50 fox Exp $
2 2
31. Added a type cast to iconv(3) calls to match the prototypes defined 31. Added a type cast to iconv(3) calls to match the prototypes defined
4in NetBSD's iconv.h. 4in NetBSD's iconv.h.
5 5
62. Added a NetBSD specific iconv_open() call to prevent failures due 62. Added a NetBSD specific iconv_open() call to prevent failures due
7to mismatches iconv_open() parameters present in GNU iconv(3). 7to mismatches iconv_open() parameters present in GNU iconv(3).
8 8
 93. Added support for SunOS / SmartOS compatibility.
 10
9--- src/ft2_unicode.c.orig 2019-06-18 19:45:46.000000000 +0000 11--- src/ft2_unicode.c.orig 2019-06-18 19:45:46.000000000 +0000
10+++ src/ft2_unicode.c 12+++ src/ft2_unicode.c
11@@ -271,7 +271,11 @@ char *cp437ToUtf8(char *src) 13@@ -271,7 +271,11 @@ char *cp437ToUtf8(char *src)
12 inLen = srcLen; 14 inLen = srcLen;
13 outPtr = outBuf; 15 outPtr = outBuf;
14  16
15+#if defined(__NetBSD__) 17+#if defined(__NetBSD__) || defined(__sun) || defined(sun)
16+ rc = iconv(cd, (const char **)&inPtr, &inLen, &outPtr, &outLen); 18+ rc = iconv(cd, (const char **)&inPtr, &inLen, &outPtr, &outLen);
17+#else 19+#else
18 rc = iconv(cd, &inPtr, &inLen, &outPtr, &outLen); 20 rc = iconv(cd, &inPtr, &inLen, &outPtr, &outLen);
19+#endif 21+#endif
20 iconv(cd, NULL, NULL, &outPtr, &outLen); // flush 22 iconv(cd, NULL, NULL, &outPtr, &outLen); // flush
21 iconv_close(cd); 23 iconv_close(cd);
22  24
23@@ -301,6 +305,8 @@ char *utf8ToCp437(char *src, bool remove 25@@ -301,6 +305,8 @@ char *utf8ToCp437(char *src, bool remove
24  26
25 #ifdef __APPLE__ 27 #ifdef __APPLE__
26 cd = iconv_open("437//TRANSLIT//IGNORE", "UTF-8-MAC"); 28 cd = iconv_open("437//TRANSLIT//IGNORE", "UTF-8-MAC");
27+#elif defined(__NetBSD__) 29+#elif defined(__NetBSD__) || defined(__sun) || defined(sun)
28+ cd = iconv_open("437", "UTF-8"); 30+ cd = iconv_open("437", "UTF-8");
29 #else 31 #else
30 cd = iconv_open("437//TRANSLIT//IGNORE", "UTF-8"); 32 cd = iconv_open("437//TRANSLIT//IGNORE", "UTF-8");
31 #endif 33 #endif
32@@ -317,7 +323,11 @@ char *utf8ToCp437(char *src, bool remove 34@@ -317,7 +323,11 @@ char *utf8ToCp437(char *src, bool remove
33 inLen = srcLen; 35 inLen = srcLen;
34 outPtr = outBuf; 36 outPtr = outBuf;
35  37
36+#if defined(__NetBSD__) 38+#if defined(__NetBSD__) || defined(__sun) || defined(sun)
37+ rc = iconv(cd, (const char **)&inPtr, &inLen, &outPtr, &outLen); 39+ rc = iconv(cd, (const char **)&inPtr, &inLen, &outPtr, &outLen);
38+#else 40+#else
39 rc = iconv(cd, &inPtr, &inLen, &outPtr, &outLen); 41 rc = iconv(cd, &inPtr, &inLen, &outPtr, &outLen);
40+#endif 42+#endif
41 iconv(cd, NULL, NULL, &outPtr, &outLen); // flush 43 iconv(cd, NULL, NULL, &outPtr, &outLen); // flush
42 iconv_close(cd); 44 iconv_close(cd);
43  45