diff options
-rw-r--r-- | .SRCINFO | 15 | ||||
-rw-r--r-- | 001-mingw-pdcurses-3.6-build.patch | 42 | ||||
-rw-r--r-- | 001-mingw-pdcurses-4.1.0-build.patch | 68 | ||||
-rw-r--r-- | 002-fix-exports.patch | 43 | ||||
-rw-r--r-- | PKGBUILD | 70 |
5 files changed, 168 insertions, 70 deletions
@@ -1,19 +1,22 @@ pkgbase = mingw-w64-pdcurses pkgdesc = Public Domain Curses wincon port (mingw-w64) - pkgver = 3.6 + pkgver = 4.1.0 pkgrel = 1 - url = https://github.com/wmcbrine/PDCurses + url = https://www.projectpluto.com/win32a.htm arch = any license = public domain makedepends = mingw-w64-gcc depends = mingw-w64-crt + provides = mingw-w64-curses options = staticlibs options = !buildflags options = !strip - source = https://github.com/wmcbrine/PDCurses/archive/3.6.tar.gz - source = 001-mingw-pdcurses-3.6-build.patch - sha256sums = 1760cbf3c3f254798e3614efa40206f95fe5bb2ca68eb2be434265d995f078eb - sha256sums = 98867a357e172cf18f9bd59fc8208f44ebba6e887f6b87522e32cda333cf416d + source = pdcurses-4.1.0.tar.gz::https://github.com/Bill-Gray/PDCurses/archive/v4.1.0.tar.gz + source = 001-mingw-pdcurses-4.1.0-build.patch + source = 002-fix-exports.patch + sha256sums = 3421e2e84bdc8220dc6740b70aa9b0e30542064189efc8609e00de78ced75656 + sha256sums = 913b5aff09d0ab1a2197f66a98657927d85a0dc3577c2b5e69179148fb2b0242 + sha256sums = 246f93facdd2703f8b9d0bcd57e89688fd861d34a30facc60a48892b330b08bc pkgname = mingw-w64-pdcurses diff --git a/001-mingw-pdcurses-3.6-build.patch b/001-mingw-pdcurses-3.6-build.patch deleted file mode 100644 index cfc8d3220dbe..000000000000 --- a/001-mingw-pdcurses-3.6-build.patch +++ /dev/null @@ -1,42 +0,0 @@ -diff -Naur wincon/Makefile.orig wincon/Makefile ---- wincon/Makefile.orig 2018-02-13 14:46:44.000000000 +0100 -+++ wincon/Makefile 2018-04-05 18:21:09.162821700 +0200 -@@ -26,6 +26,9 @@ - PDCURSES_WIN_H = $(osdir)/pdcwin.h - - CC = gcc -+AR = ar -+STRIP = strip -+LINK = gcc - - ifeq ($(DEBUG),Y) - CFLAGS = -g -Wall -DPDCDEBUG -@@ -45,17 +48,15 @@ - CFLAGS += -DPDC_FORCE_UTF8 - endif - --LINK = gcc -- - ifeq ($(DLL),Y) - CFLAGS += -DPDC_DLL_BUILD -- LIBEXE = gcc -+ LIBEXE = $(CC) - LIBFLAGS = -Wl,--out-implib,pdcurses.a -shared -o - LIBCURSES = pdcurses.dll - LIBDEPS = $(LIBOBJS) $(PDCOBJS) - CLEAN = $(LIBCURSES) *.a - else -- LIBEXE = ar -+ LIBEXE = $(AR) - LIBFLAGS = rcv - LIBCURSES = pdcurses.a - LIBDEPS = $(LIBOBJS) $(PDCOBJS) -@@ -75,7 +76,7 @@ - - demos: $(DEMOS) - ifneq ($(DEBUG),Y) -- strip *.exe -+ $(STRIP) *.exe - endif - - $(LIBCURSES) : $(LIBDEPS) diff --git a/001-mingw-pdcurses-4.1.0-build.patch b/001-mingw-pdcurses-4.1.0-build.patch new file mode 100644 index 000000000000..2224b9ce2817 --- /dev/null +++ b/001-mingw-pdcurses-4.1.0-build.patch @@ -0,0 +1,68 @@ +diff -Naur pdcurses-4.1.0-orig/wincon/Makefile.mng pdcurses-4.1.0/wincon/Makefile.mng +--- pdcurses-4.1.0-orig/wincon/Makefile.mng 2019-05-09 02:27:41.000000000 +0300 ++++ pdcurses-4.1.0/wincon/Makefile.mng 2019-05-28 08:49:28.054006700 +0300 +@@ -100,8 +100,9 @@ + ifeq ($(DLL),Y) + CFLAGS += -DPDC_DLL_BUILD + LIBEXE = $(PREFIX)gcc +- LIBFLAGS = -Wl,--out-implib,pdcurses.a -shared -o +- LIBCURSES = pdcurses.dll ++ LIBARCHIVE = libpdcurses.dll.a ++ LIBFLAGS = -Wl,--out-implib,$(LIBARCHIVE) -shared -o ++ LIBCURSES = libpdcurses.dll + LIBDEPS = $(LIBOBJS) $(PDCOBJS) + LIBSADDED = + EXELIBS = +@@ -113,7 +114,8 @@ + else + LIBFLAGS = rv + endif +- LIBCURSES = pdcurses.a ++ LIBARCHIVE = libpdcurses.a ++ LIBCURSES = $(LIBARCHIVE) + LIBDEPS = $(LIBOBJS) $(PDCOBJS) + LIBSADDED = + EXELIBS = +@@ -139,7 +141,7 @@ + + $(LIBCURSES) : $(LIBDEPS) + $(LIBEXE) $(LIBFLAGS) $@ $? $(LIBSADDED) +- $(CP) pdcurses.a panel.a ++ $(CP) $(LIBARCHIVE) libpanel.a + + $(LIBOBJS) $(PDCOBJS) : $(PDCURSES_HEADERS) + $(PDCOBJS) : $(PDCURSES_WIN_H) +diff -Naur pdcurses-4.1.0-orig/wingui/Makefile.mng pdcurses-4.1.0/wingui/Makefile.mng +--- pdcurses-4.1.0-orig/wingui/Makefile.mng 2019-05-09 02:27:41.000000000 +0300 ++++ pdcurses-4.1.0/wingui/Makefile.mng 2019-05-28 08:48:33.963930900 +0300 +@@ -98,8 +98,9 @@ + ifeq ($(DLL),Y) + CFLAGS += -DPDC_DLL_BUILD + LIBEXE = $(CC) +- LIBFLAGS = -Wl,--out-implib,pdcurses.a -shared -o +- LIBCURSES = pdcurses.dll ++ LIBARCHIVE = libpdcurses.dll.a ++ LIBFLAGS = -Wl,--out-implib,$(LIBARCHIVE) -shared -o ++ LIBCURSES = libpdcurses.dll + LIBDEPS = $(LIBOBJS) $(PDCOBJS) + LIBSADDED = -lgdi32 -lcomdlg32 + EXELIBS = +@@ -111,7 +112,8 @@ + else + LIBFLAGS = rv + endif +- LIBCURSES = pdcurses.a ++ LIBARCHIVE = libpdcurses.a ++ LIBCURSES = $(LIBARCHIVE) + LIBDEPS = $(LIBOBJS) $(PDCOBJS) + LIBSADDED = + EXELIBS = -lgdi32 -lcomdlg32 +@@ -137,7 +139,7 @@ + + $(LIBCURSES) : $(LIBDEPS) + $(LIBEXE) $(LIBFLAGS) $@ $? $(LIBSADDED) +- $(CP) pdcurses.a panel.a ++ $(CP) $(LIBARCHIVE) libpanel.a + + $(LIBOBJS) $(PDCOBJS) : $(PDCURSES_HEADERS) + $(PDCOBJS) : $(PDCURSES_WIN_H) diff --git a/002-fix-exports.patch b/002-fix-exports.patch new file mode 100644 index 000000000000..662d22308bfb --- /dev/null +++ b/002-fix-exports.patch @@ -0,0 +1,43 @@ +diff -ruN PDCurses-patched/term.h PDCurses/term.h +--- PDCurses-patched/term.h 2017-10-02 09:48:51.000000000 +0800 ++++ PDCurses/term.h 2017-10-02 09:49:28.290552879 +0800 +@@ -23,23 +23,23 @@ + /* PDCEX is defined in curses.h */ + PDCEX TERMINAL *cur_term; + +-int del_curterm(TERMINAL *); +-int putp(const char *); +-int restartterm(const char *, int, int *); +-TERMINAL *set_curterm(TERMINAL *); +-int setterm(const char *); +-int setupterm(const char *, int, int *); +-int tgetent(char *, const char *); +-int tgetflag(const char *); +-int tgetnum(const char *); +-char *tgetstr(const char *, char **); +-char *tgoto(const char *, int, int); +-int tigetflag(const char *); +-int tigetnum(const char *); +-char *tigetstr(const char *); +-char *tparm(const char *, long, long, long, long, long, ++PDCEX int del_curterm(TERMINAL *); ++PDCEX int putp(const char *); ++PDCEX int restartterm(const char *, int, int *); ++PDCEX TERMINAL *set_curterm(TERMINAL *); ++PDCEX int setterm(const char *); ++PDCEX int setupterm(const char *, int, int *); ++PDCEX int tgetent(char *, const char *); ++PDCEX int tgetflag(const char *); ++PDCEX int tgetnum(const char *); ++PDCEX char *tgetstr(const char *, char **); ++PDCEX char *tgoto(const char *, int, int); ++PDCEX int tigetflag(const char *); ++PDCEX int tigetnum(const char *); ++PDCEX char *tigetstr(const char *); ++PDCEX char *tparm(const char *, long, long, long, long, long, + long, long, long, long); +-int tputs(const char *, int, int (*)(int)); ++PDCEX int tputs(const char *, int, int (*)(int)); + + #if defined(__cplusplus) || defined(__cplusplus__) || defined(__CPLUSPLUS) + } @@ -2,41 +2,60 @@ # Contributor: Filip Brcic <brcha@gna.org> pkgname=mingw-w64-pdcurses -pkgver=3.6 +provides=(mingw-w64-curses) +pkgver=4.1.0 pkgrel=1 pkgdesc="Public Domain Curses wincon port (mingw-w64)" arch=('any') -url="https://github.com/wmcbrine/PDCurses" +url="https://www.projectpluto.com/win32a.htm" depends=('mingw-w64-crt') makedepends=('mingw-w64-gcc') options=(staticlibs !buildflags !strip) license=("public domain") -source=("https://github.com/wmcbrine/PDCurses/archive/${pkgver}.tar.gz" - "001-mingw-pdcurses-3.6-build.patch") -sha256sums=('1760cbf3c3f254798e3614efa40206f95fe5bb2ca68eb2be434265d995f078eb' - '98867a357e172cf18f9bd59fc8208f44ebba6e887f6b87522e32cda333cf416d') +source=(pdcurses-${pkgver}.tar.gz::"https://github.com/Bill-Gray/PDCurses/archive/v${pkgver}.tar.gz" + 001-mingw-pdcurses-4.1.0-build.patch + 002-fix-exports.patch) +sha256sums=('3421e2e84bdc8220dc6740b70aa9b0e30542064189efc8609e00de78ced75656' + '913b5aff09d0ab1a2197f66a98657927d85a0dc3577c2b5e69179148fb2b0242' + '246f93facdd2703f8b9d0bcd57e89688fd861d34a30facc60a48892b330b08bc') _architectures="i686-w64-mingw32 x86_64-w64-mingw32" prepare() { - cd "${srcdir}/PDCurses-${pkgver}/wincon" - patch -Np1 -i ${srcdir}/001-mingw-pdcurses-3.6-build.patch + cd "${srcdir}/PDCurses-${pkgver}" + patch -p1 -i ${srcdir}/001-mingw-pdcurses-4.1.0-build.patch + patch -p1 -i ${srcdir}/002-fix-exports.patch } build() { cd "${srcdir}/PDCurses-${pkgver}" - export CFLAGS="-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4" for _arch in ${_architectures}; do - cp -a wincon build-${_arch} && pushd build-${_arch} - make \ - CC=${_arch}-gcc \ - LINK=${_arch}-gcc \ - STRIP=${_arch}-strip \ - AR=${_arch}-ar \ - WIDE=Y \ - UTF8=Y \ - DLL=Y +# NOte that you should use something like -${_arch} +# to prevent building i686 compiled binaries from +# being compiled with x86_64 compiled binaries and +# vice-versa. That causes build failures - no surpise. + cp -rf wingui wingui-shared-${_arch} + pushd wingui-shared-${_arch} + make -f Makefile.mng \ + CC=${_arch}-gcc \ + LINK=${_arch}-gcc \ + STRIP=${_arch}-strip \ + AR=${_arch}-ar \ + WIDE=Y \ + UTF8=Y \ + DLL=Y popd + + cp -rf wingui wingui-static-${_arch} + pushd wingui-static-${_arch} + make -f Makefile.mng \ + CC=${_arch}-gcc \ + LINK=${_arch}-gcc \ + STRIP=${_arch}-strip \ + AR=${_arch}-ar \ + WIDE=Y \ + UTF8=Y + popd done } @@ -46,13 +65,20 @@ package() { mkdir -p ${pkgdir}/usr/${_arch}/{bin,include,lib} mkdir ${pkgdir}/usr/${_arch}/include/pdcurses - install build-${_arch}/*.exe ${pkgdir}/usr/${_arch}/bin/ - install build-${_arch}/pdcurses.dll ${pkgdir}/usr/${_arch}/bin/ - install build-${_arch}/pdcurses.a ${pkgdir}/usr/${_arch}/lib/libpdcurses.dll.a + install wingui-shared-${_arch}/*.exe ${pkgdir}/usr/${_arch}/bin/ + install wingui-shared-${_arch}/libpdcurses.dll ${pkgdir}/usr/${_arch}/bin/ + install wingui-shared-${_arch}/libpdcurses.dll.a ${pkgdir}/usr/${_arch}/lib/libpdcurses.dll.a + install wingui-shared-${_arch}/libpdcurses.dll.a ${pkgdir}/usr/${_arch}/lib/libcurses.dll.a + install wingui-shared-${_arch}/libpdcurses.dll.a ${pkgdir}/usr/${_arch}/lib/libpanel.dll.a + + install wingui-static-${_arch}/libpdcurses.a ${pkgdir}/usr/${_arch}/lib/libpdcurses.a + install wingui-static-${_arch}/libpdcurses.a ${pkgdir}/usr/${_arch}/lib/libcurses.a + install wingui-static-${_arch}/libpdcurses.a ${pkgdir}/usr/${_arch}/lib/libpanel.a echo '#include "pdcurses/curses.h"' > pdcurses.h + install -m 0644 curses.h panel.h term.h acs_defs.h ${pkgdir}/usr/${_arch}/include/pdcurses/ install -m 0644 pdcurses.h ${pkgdir}/usr/${_arch}/include/pdcurses.h - install -m 0644 curses.h panel.h term.h ${pkgdir}/usr/${_arch}/include/pdcurses/ + find "$pkgdir/usr/${_arch}" -name '*.exe' -exec ${_arch}-strip --strip-unneeded {} \; find "$pkgdir/usr/${_arch}" -name '*.dll' -exec ${_arch}-strip --strip-unneeded {} \; find "$pkgdir/usr/${_arch}" -name '*.a' -o -name '*.dll' | xargs ${_arch}-strip -g |