diff --git a/graphics/qr-code-generator/Makefile b/graphics/qr-code-generator/Makefile index a1146c7d6f11..2ca7af89be1b 100644 --- a/graphics/qr-code-generator/Makefile +++ b/graphics/qr-code-generator/Makefile @@ -1,32 +1,33 @@ PORTNAME= qr-code-generator -PORTVERSION= 1.6.0 +PORTVERSION= 1.8.0 DISTVERSIONPREFIX= v CATEGORIES= graphics MAINTAINER= lwhsu@FreeBSD.org COMMENT= High-quality QR Code generator library WWW= https://www.nayuki.io/page/qr-code-generator-library LICENSE= MIT USES= compiler:c++11-lang gmake USE_LDCONFIG= yes USE_GITHUB= yes GH_ACCOUNT= nayuki GH_PROJECT= QR-Code-generator -GH_TAGNAME= 67c6246 PLIST_SUB= VERSION=${PORTVERSION} post-patch: ${CP} ${FILESDIR}/Makefile ${WRKSRC} ${REINPLACE_CMD} -e 's,$$(DESTDIR)/usr,${STAGEDIR}${PREFIX},' ${WRKSRC}/c/Makefile ${REINPLACE_CMD} -e 's,$$(DESTDIR)/usr,${STAGEDIR}${PREFIX},' ${WRKSRC}/cpp/Makefile + ${REINPLACE_CMD} -e 's,%%VERSION%%,${PORTVERSION},' ${WRKSRC}/c/Makefile + ${REINPLACE_CMD} -e 's,%%VERSION%%,${PORTVERSION},' ${WRKSRC}/cpp/Makefile post-install: ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libqrcodegen.so.${PORTVERSION} ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libqrcodegencpp.so.${PORTVERSION} .include diff --git a/graphics/qr-code-generator/distinfo b/graphics/qr-code-generator/distinfo index fac201807607..e280ef7073df 100644 --- a/graphics/qr-code-generator/distinfo +++ b/graphics/qr-code-generator/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1583603728 -SHA256 (nayuki-QR-Code-generator-v1.6.0-67c6246_GH0.tar.gz) = a9b83deee76bbe35770bf36a669494358dfe1d8aec3b2e6f9e216c9e830457ac -SIZE (nayuki-QR-Code-generator-v1.6.0-67c6246_GH0.tar.gz) = 136401 +TIMESTAMP = 1673860287 +SHA256 (nayuki-QR-Code-generator-v1.8.0_GH0.tar.gz) = 2ec0a4d33d6f521c942eeaf473d42d5fe139abcfa57d2beffe10c5cf7d34ae60 +SIZE (nayuki-QR-Code-generator-v1.8.0_GH0.tar.gz) = 193288 diff --git a/graphics/qr-code-generator/files/patch-c_Makefile b/graphics/qr-code-generator/files/patch-c_Makefile index 40fb9449a62b..4462f4adee50 100644 --- a/graphics/qr-code-generator/files/patch-c_Makefile +++ b/graphics/qr-code-generator/files/patch-c_Makefile @@ -1,85 +1,84 @@ Based on https://github.com/nayuki/QR-Code-generator/pull/72 ---- c/Makefile.orig 2019-10-14 00:20:16 UTC +--- c/Makefile.orig 2023-01-16 09:13:33 UTC +++ c/Makefile @@ -29,11 +29,13 @@ # - CFLAGS: Any extra user-specified compiler flags (can be blank). # Recommended compiler flags: -CFLAGS += -std=c99 -O +CFLAGS ?= -std=c99 -O # Extra flags for diagnostics: # CFLAGS += -g -Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -fsanitize=undefined,address +# Version information -+VERSION = 1.6.0 ++VERSION = %%VERSION%% # ---- Controlling make ---- -@@ -51,18 +53,45 @@ CFLAGS += -std=c99 -O - # ---- Targets to build ---- +@@ -52,17 +54,44 @@ CFLAGS += -std=c99 -O LIB = qrcodegen -LIBFILE = lib$(LIB).a +ARFILE = lib$(LIB).a +LIBFILE = lib$(LIB).so +# Bump the soname number when the ABI changes and gets incompatible +SO_NAME = $(LIBFILE).1 +REAL_NAME = $(LIBFILE).$(VERSION) +HEADERS = qrcodegen.h LIBOBJ = qrcodegen.o - MAINS = qrcodegen-demo qrcodegen-test qrcodegen-worker + MAINS = qrcodegen-demo qrcodegen-test +# define paths to install +INCLUDEDIR ?= $(DESTDIR)/usr/include/qrcodegen +LIBDIR ?= $(DESTDIR)/usr/lib + # Build all binaries -all: $(LIBFILE) $(MAINS) +all: $(LIBFILE) $(ARFILE) $(MAINS) # Delete build output clean: - rm -f -- $(LIBOBJ) $(LIBFILE) $(MAINS:=.o) $(MAINS) + rm -f -- $(LIBOBJ) $(LIBFILE) $(ARFILE) $(MAINS:=.o) $(MAINS) rm -rf .deps +install-shared: $(LIBFILE) + install -d $(LIBDIR) || true + install -m 0644 $(LIBFILE) $(LIBDIR)/$(REAL_NAME) + rm -f $(LIBDIR)/$(SO_NAME) + ln -s $(REAL_NAME) $(LIBDIR)/$(SO_NAME) + rm -f $(LIBDIR)/$(LIBFILE) + ln -s $(SO_NAME) $(LIBDIR)/$(LIBFILE) + +install-static: $(ARFILE) + install -d $(LIBDIR) || true + install -m 0644 $(ARFILE) $(LIBDIR)/$(ARFILE) + +install-header: $(HEADERS) + install -d $(INCLUDEDIR) || true + install -m 0644 $(HEADERS) $(INCLUDEDIR)/ + +install: install-shared install-static install-header + # Executable files %: %.o $(LIBFILE) - $(CC) $(CFLAGS) -o $@ $< -L . -l $(LIB) + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -L . -l $(LIB) @@ -72,12 +101,15 @@ qrcodegen-test: qrcodegen-test.c $(LIBOBJ:%.o=%.c) - $(CC) $(CFLAGS) -DQRCODEGEN_TEST -o $@ $^ + $(CC) $(CFLAGS) $(LDFLAGS) -DQRCODEGEN_TEST -o $@ $^ # The library -$(LIBFILE): $(LIBOBJ) +$(ARFILE): $(LIBOBJ) $(AR) -crs $@ -- $^ +$(LIBFILE): $(LIBOBJ) + $(CC) -shared -Wl,-soname,$(SO_NAME) $(LDFLAGS) -o $@ $^ + # Object files %.o: %.c .deps/timestamp - $(CC) $(CFLAGS) -c -o $@ -MMD -MF .deps/$*.d $< + $(CC) $(CFLAGS) -fPIC -c -o $@ -MMD -MF .deps/$*.d $< # Have a place to store header dependencies automatically generated by compiler .deps/timestamp: diff --git a/graphics/qr-code-generator/files/patch-cpp_Makefile b/graphics/qr-code-generator/files/patch-cpp_Makefile index 809d6b64888b..23aa5c040db7 100644 --- a/graphics/qr-code-generator/files/patch-cpp_Makefile +++ b/graphics/qr-code-generator/files/patch-cpp_Makefile @@ -1,86 +1,85 @@ Based on https://github.com/nayuki/QR-Code-generator/pull/72 ---- cpp/Makefile.orig 2019-10-14 00:20:16 UTC +--- cpp/Makefile.orig 2023-01-16 09:17:10 UTC +++ cpp/Makefile -@@ -29,11 +29,13 @@ +@@ -29,12 +29,14 @@ # - CXXFLAGS: Any extra user-specified compiler flags (can be blank). # Recommended compiler flags: -CXXFLAGS += -std=c++11 -O +CXXFLAGS ?= -std=c++11 -O # Extra flags for diagnostics: # CXXFLAGS += -g -Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -fsanitize=undefined,address +- +# Version information -+VERSION = 1.6.0 - ++VERSION = %%VERSION%% ++ # ---- Controlling make ---- -@@ -50,30 +52,61 @@ CXXFLAGS += -std=c++11 -O - + # Clear default suffix rules +@@ -51,29 +53,59 @@ CXXFLAGS += -std=c++11 -O # ---- Targets to build ---- --LIB = qrcodegen + LIB = qrcodegencpp -LIBFILE = lib$(LIB).a -+LIB = qrcodegencpp +ARFILE = lib$(LIB).a +LIBFILE = lib$(LIB).so +# Bump the soname number when the ABI changes and gets incompatible +SO_NAME = $(LIBFILE).1 +REAL_NAME = $(LIBFILE).$(VERSION) -+HEADERS = BitBuffer.hpp QrCode.hpp QrSegment.hpp - LIBOBJ = BitBuffer.o QrCode.o QrSegment.o - MAINS = QrCodeGeneratorDemo QrCodeGeneratorWorker ++HEADERS = qrcodegen.hpp + LIBOBJ = qrcodegen.o + MAINS = QrCodeGeneratorDemo +# define paths to install +INCLUDEDIR ?= $(DESTDIR)/usr/include/qrcodegen +LIBDIR ?= $(DESTDIR)/usr/lib -+ + # Build all binaries -all: $(LIBFILE) $(MAINS) +all: $(LIBFILE) $(ARFILE) $(MAINS) # Delete build output clean: - rm -f -- $(LIBOBJ) $(LIBFILE) $(MAINS:=.o) $(MAINS) + rm -f -- $(LIBOBJ) $(LIBFILE) $(ARFILE) $(MAINS:=.o) $(MAINS) rm -rf .deps +install-shared: $(LIBFILE) + install -d $(LIBDIR) || true + install -m 0644 $(LIBFILE) $(LIBDIR)/$(REAL_NAME) + rm -f $(LIBDIR)/$(SO_NAME) + ln -s $(REAL_NAME) $(LIBDIR)/$(SO_NAME) + rm -f $(LIBDIR)/$(LIBFILE) + ln -s $(SO_NAME) $(LIBDIR)/$(LIBFILE) + +install-static: $(ARFILE) + install -d $(LIBDIR) || true + install -m 0644 $(ARFILE) $(LIBDIR)/$(ARFILE) + +install-header: $(HEADERS) + install -d $(INCLUDEDIR) || true + install -m 0644 $(HEADERS) $(INCLUDEDIR)/ + +install: install-shared install-static install-header + # Executable files %: %.o $(LIBFILE) - $(CXX) $(CXXFLAGS) -o $@ $< -L . -l $(LIB) + $(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $< -L . -l $(LIB) # The library -$(LIBFILE): $(LIBOBJ) +$(ARFILE): $(LIBOBJ) $(AR) -crs $@ -- $^ +$(LIBFILE): $(LIBOBJ) + $(CC) -shared -Wl,-soname,$(SO_NAME) $(LDFLAGS) -o $@ $^ + # Object files %.o: %.cpp .deps/timestamp - $(CXX) $(CXXFLAGS) -c -o $@ -MMD -MF .deps/$*.d $< + $(CXX) $(CXXFLAGS) -fPIC -c -o $@ -MMD -MF .deps/$*.d $< # Have a place to store header dependencies automatically generated by compiler .deps/timestamp: diff --git a/graphics/qr-code-generator/pkg-plist b/graphics/qr-code-generator/pkg-plist index bdd62dd1b9f3..669bcd448aac 100644 --- a/graphics/qr-code-generator/pkg-plist +++ b/graphics/qr-code-generator/pkg-plist @@ -1,12 +1,10 @@ -include/qrcodegen/BitBuffer.hpp -include/qrcodegen/QrCode.hpp -include/qrcodegen/QrSegment.hpp include/qrcodegen/qrcodegen.h +include/qrcodegen/qrcodegen.hpp lib/libqrcodegen.a lib/libqrcodegen.so lib/libqrcodegen.so.1 lib/libqrcodegen.so.%%VERSION%% lib/libqrcodegencpp.a lib/libqrcodegencpp.so lib/libqrcodegencpp.so.1 lib/libqrcodegencpp.so.%%VERSION%%