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.diff -r1.31 -r1.32 pkgsrc/audio/fasttracker2/Makefile
(fox)
@@ -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 | |||
3 | DISTNAME= ft2clone-${DISTVERSION}-code | 3 | DISTNAME= ft2clone-${DISTVERSION}-code | |
4 | PKGNAME= fasttracker2-${DISTVERSION:C/b/2./} | 4 | PKGNAME= fasttracker2-${DISTVERSION:C/b/2./} | |
5 | DISTVERSION= b162 | 5 | DISTVERSION= b162 | |
6 | PKGREVISION= 2 | 6 | PKGREVISION= 2 | |
7 | CATEGORIES= audio | 7 | CATEGORIES= audio | |
8 | MASTER_SITES= https://16-bits.org/ \ | 8 | MASTER_SITES= https://16-bits.org/ \ | |
9 | ${MASTER_SITE_FREEBSD_LOCAL:=ehaupt/} | 9 | ${MASTER_SITE_FREEBSD_LOCAL:=ehaupt/} | |
10 | EXTRACT_SUFX= .zip | 10 | EXTRACT_SUFX= .zip | |
11 | 11 | |||
12 | MAINTAINER= fox@NetBSD.org | 12 | MAINTAINER= fox@NetBSD.org | |
13 | HOMEPAGE= https://16-bits.org/ | 13 | HOMEPAGE= https://16-bits.org/ | |
14 | COMMENT= Portable Fasttracker II clone in C using SDL 2 | 14 | COMMENT= Portable Fasttracker II clone in C using SDL 2 | |
15 | LICENSE= modified-bsd AND cc-by-nc-sa-v4.0-license | 15 | LICENSE= modified-bsd AND cc-by-nc-sa-v4.0-license | |
16 | 16 | |||
17 | WRKSRC= ${WRKDIR}/ft2-clone-code | 17 | WRKSRC= ${WRKDIR}/ft2-clone-code | |
18 | USE_LANGUAGES= c c++ | 18 | USE_LANGUAGES= c c++ | |
19 | 19 | |||
20 | LDFLAGS+= -lSDL2 -lpthread -lstdc++ -lm | 20 | LDFLAGS+= -lSDL2 -lpthread -lstdc++ -lm | |
21 | LDFLAGS.SunOS+= -liconv | |||
21 | 22 | |||
22 | INSTALLATION_DIRS+= bin share/pixmaps | 23 | INSTALLATION_DIRS+= bin share/pixmaps | |
23 | 24 | |||
24 | SUBST_CLASSES+= d2u | 25 | SUBST_CLASSES+= d2u | |
25 | SUBST_MESSAGE.d2u= Converting CRLF to LF. | 26 | SUBST_MESSAGE.d2u= Converting CRLF to LF. | |
26 | SUBST_STAGE.d2u= post-extract | 27 | SUBST_STAGE.d2u= post-extract | |
27 | SUBST_FILES.d2u= src/*.[ch] | 28 | SUBST_FILES.d2u= src/*.[ch] | |
28 | SUBST_FILTER_CMD.d2u= ${TR} -d '\r' | 29 | SUBST_FILTER_CMD.d2u= ${TR} -d '\r' | |
29 | 30 | |||
30 | do-build: | 31 | do-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 | |||
35 | do-install: | 36 | do-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" |
@@ -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 | |||
3 | SHA1 (ft2clone-b162-code.zip) = 4616581dac4cd8b498c88cad381dd9910b326390 | 3 | SHA1 (ft2clone-b162-code.zip) = 4616581dac4cd8b498c88cad381dd9910b326390 | |
4 | RMD160 (ft2clone-b162-code.zip) = a24993258f783e345f812f75a35a703154fb0aec | 4 | RMD160 (ft2clone-b162-code.zip) = a24993258f783e345f812f75a35a703154fb0aec | |
5 | SHA512 (ft2clone-b162-code.zip) = 4b85514aece028075e8e5017c3b0c26638f0c74e18ac669788393a03457cb903959a548de9b1ca249eab8e629e18503dd1a7519aa81645a26e8f25684c4ec817 | 5 | SHA512 (ft2clone-b162-code.zip) = 4b85514aece028075e8e5017c3b0c26638f0c74e18ac669788393a03457cb903959a548de9b1ca249eab8e629e18503dd1a7519aa81645a26e8f25684c4ec817 | |
6 | Size (ft2clone-b162-code.zip) = 3953315 bytes | 6 | Size (ft2clone-b162-code.zip) = 3953315 bytes | |
7 | SHA1 (patch-src_ft2__diskop.c) = 0ade49429ec36d44b6cb6bc3b829317fcd08df81 | 7 | SHA1 (patch-src_ft2__diskop.c) = 054e62ba9b512ea0297874988252e7fd0db4e162 | |
8 | SHA1 (patch-src_ft2__header.h) = 738181fabffcdcaa5ed7a4b1ae533246b6788bff | 8 | SHA1 (patch-src_ft2__header.h) = 738181fabffcdcaa5ed7a4b1ae533246b6788bff | |
9 | SHA1 (patch-src_ft2__sample__ed.c) = 5cb4bbdb17d6e7cd98d378fe7dac8524630783c0 | 9 | SHA1 (patch-src_ft2__sample__ed.c) = 5cb4bbdb17d6e7cd98d378fe7dac8524630783c0 | |
10 | SHA1 (patch-src_ft2__unicode.c) = 3dca4d5b2de1a2794bde7060d2f7bf6f4923c91c | 10 | SHA1 (patch-src_ft2__unicode.c) = bca10844af2298f77c4f2a8580d030bf2ad54364 |
@@ -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 | |||
3 | Added <sys/types.h> / <sys/stat.h> to prevent "unknown type name" | 3 | 1. 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 | 6 | 2. 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 | { |
@@ -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 | |||
3 | 1. Added a type cast to iconv(3) calls to match the prototypes defined | 3 | 1. Added a type cast to iconv(3) calls to match the prototypes defined | |
4 | in NetBSD's iconv.h. | 4 | in NetBSD's iconv.h. | |
5 | 5 | |||
6 | 2. Added a NetBSD specific iconv_open() call to prevent failures due | 6 | 2. Added a NetBSD specific iconv_open() call to prevent failures due | |
7 | to mismatches iconv_open() parameters present in GNU iconv(3). | 7 | to mismatches iconv_open() parameters present in GNU iconv(3). | |
8 | 8 | |||
9 | 3. 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 |