diff --git a/.gitignore b/.gitignore index 54855db..87566d1 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,5 @@ libquirc.so* .*.swp *~ .DS_Store -.idea \ No newline at end of file +.idea +quirc.pc diff --git a/Makefile b/Makefile index 8327b4e..3393bec 100644 --- a/Makefile +++ b/Makefile @@ -49,7 +49,7 @@ QUIRC_CXXFLAGS = $(QUIRC_CFLAGS) $(OPENCV_CFLAGS) --std=c++17 .PHONY: all v4l sdl opencv install uninstall clean -all: libquirc.$(LIB_SUFFIX) qrtest +all: libquirc.$(LIB_SUFFIX) qrtest quirc.pc v4l: quirc-scanner @@ -86,6 +86,11 @@ libquirc.$(LIB_SUFFIX): libquirc.$(VERSIONED_LIB_SUFFIX) libquirc.$(VERSIONED_LIB_SUFFIX): $(LIB_OBJ) $(CC) -shared -o $@ $(LIB_OBJ) $(LDFLAGS) -lm +quirc.pc: quirc.pc.in + sed -e 's|@PREFIX@|$(PREFIX)|g' \ + -e 's|@VERSION@|$(LIB_VERSION)|g' \ + quirc.pc.in > quirc.pc + .c.o: $(CC) $(QUIRC_CFLAGS) -o $@ -c $< @@ -93,7 +98,7 @@ libquirc.$(VERSIONED_LIB_SUFFIX): $(LIB_OBJ) .cxx.o: $(CXX) $(QUIRC_CXXFLAGS) -o $@ -c $< -install: libquirc.a libquirc.$(LIB_SUFFIX) quirc-demo quirc-scanner +install: libquirc.a libquirc.$(LIB_SUFFIX) quirc-demo quirc-scanner quirc.pc install -o root -g root -m 0644 lib/quirc.h $(DESTDIR)$(PREFIX)/include install -o root -g root -m 0644 libquirc.a $(DESTDIR)$(PREFIX)/lib install -o root -g root -m 0755 libquirc.$(VERSIONED_LIB_SUFFIX) \ @@ -102,6 +107,8 @@ install: libquirc.a libquirc.$(LIB_SUFFIX) quirc-demo quirc-scanner install -o root -g root -m 0755 quirc-demo $(DESTDIR)$(PREFIX)/bin # install -o root -g root -m 0755 quirc-demo-opencv $(DESTDIR)$(PREFIX)/bin install -o root -g root -m 0755 quirc-scanner $(DESTDIR)$(PREFIX)/bin + install -d $(DESTDIR)$(PREFIX)/lib/pkgconfig + install -o root -g root -m 0644 quirc.pc $(DESTDIR)$(PREFIX)/lib/pkgconfig uninstall: rm -f $(DESTDIR)$(PREFIX)/include/quirc.h @@ -110,6 +117,7 @@ uninstall: rm -f $(DESTDIR)$(PREFIX)/bin/quirc-demo rm -f $(DESTDIR)$(PREFIX)/bin/quirc-demo-opencv rm -f $(DESTDIR)$(PREFIX)/bin/quirc-scanner + rm -f $(DESTDIR)$(PREFIX)/lib/pkgconfig/quirc.pc clean: rm -f */*.o @@ -122,3 +130,4 @@ clean: rm -f quirc-demo rm -f quirc-demo-opencv rm -f quirc-scanner + rm -f quirc.pc diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..9685583 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,5 @@ +quirc (1.2+deb12-1) unstable; urgency=medium + + * Initial Debian package + + -- Daniel Beer Tue, 01 Jul 2025 12:00:00 +0000 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..ff2a34d --- /dev/null +++ b/debian/control @@ -0,0 +1,47 @@ +Source: quirc +Section: libs +Priority: optional +Maintainer: Daniel Beer +Build-Depends: debhelper-compat (= 13), + pkg-config, + libjpeg-dev +Standards-Version: 4.6.2 +Homepage: https://github.com/dlbeer/quirc +Vcs-Git: https://github.com/dlbeer/quirc.git +Vcs-Browser: https://github.com/dlbeer/quirc + +Package: libquirc1 +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: QR code recognition library + Quirc is a library for extracting and decoding QR codes from images. + It has several features which make it a good choice for this purpose: + . + * It is fast enough to be used with realtime video + * It has a robust and tolerant recognition algorithm + * It is easy to use, with a simple API + * It is small and easily embeddable + * It has a very small memory footprint + * It uses no global mutable state, and is safe to use in a multithreaded + application + * ISC-licensed, with almost no restrictions regarding use and/or modification + +Package: libquirc-dev +Section: libdevel +Architecture: any +Depends: libquirc1 (= ${binary:Version}), ${misc:Depends} +Description: QR code recognition library - development files + Quirc is a library for extracting and decoding QR codes from images. + . + This package contains the development files (headers and static library) + for libquirc. + +Package: quirc-utils +Section: utils +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: QR code recognition utilities + Quirc is a library for extracting and decoding QR codes from images. + . + This package contains command-line utilities: + * quirc-scanner: command-line QR code scanner diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 0000000..6408778 --- /dev/null +++ b/debian/copyright @@ -0,0 +1,21 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: quirc +Upstream-Contact: Daniel Beer +Source: https://github.com/dlbeer/quirc + +Files: * +Copyright: 2010-2012 Daniel Beer +License: ISC + +License: ISC + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. + . + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/debian/libquirc-dev.install b/debian/libquirc-dev.install new file mode 100644 index 0000000..f56a9b2 --- /dev/null +++ b/debian/libquirc-dev.install @@ -0,0 +1,3 @@ +usr/include/quirc.h +usr/lib/libquirc.a +usr/lib/pkgconfig/quirc.pc diff --git a/debian/libquirc1.install b/debian/libquirc1.install new file mode 100644 index 0000000..4100222 --- /dev/null +++ b/debian/libquirc1.install @@ -0,0 +1,2 @@ +usr/lib/libquirc.so.* +usr/lib/libquirc.so diff --git a/debian/libquirc1.shlibs b/debian/libquirc1.shlibs new file mode 100644 index 0000000..e0f92ad --- /dev/null +++ b/debian/libquirc1.shlibs @@ -0,0 +1 @@ +libquirc 1.2 libquirc1 (>= 1.2) diff --git a/debian/quirc-utils.install b/debian/quirc-utils.install new file mode 100644 index 0000000..d9f5000 --- /dev/null +++ b/debian/quirc-utils.install @@ -0,0 +1 @@ +usr/bin/quirc-scanner diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..5d756c4 --- /dev/null +++ b/debian/rules @@ -0,0 +1,29 @@ +#!/usr/bin/make -f + +export DEB_BUILD_MAINT_OPTIONS = hardening=+all +export DEB_CFLAGS_MAINT_APPEND = -Wall -pedantic +export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed + +%: + dh $@ + +override_dh_auto_build: + $(MAKE) all v4l SDL_CFLAGS= SDL_LIBS= CFLAGS="-O3 -Wall -fPIC -DQUIRC_MAX_REGIONS=65534" + +override_dh_auto_install: + # Install only the components we need without SDL dependencies + mkdir -p $(CURDIR)/debian/tmp/usr/lib + mkdir -p $(CURDIR)/debian/tmp/usr/include + mkdir -p $(CURDIR)/debian/tmp/usr/bin + mkdir -p $(CURDIR)/debian/tmp/usr/lib/pkgconfig + + # Install library files directly to tmp, let dh_install handle distribution + install -m 0644 lib/quirc.h $(CURDIR)/debian/tmp/usr/include/ + install -m 0644 libquirc.a $(CURDIR)/debian/tmp/usr/lib/ + install -m 0755 libquirc.so.1.2 $(CURDIR)/debian/tmp/usr/lib/ + ln -s libquirc.so.1.2 $(CURDIR)/debian/tmp/usr/lib/libquirc.so + install -m 0755 quirc-scanner $(CURDIR)/debian/tmp/usr/bin/ + install -m 0644 quirc.pc $(CURDIR)/debian/tmp/usr/lib/pkgconfig/ + +override_dh_auto_clean: + $(MAKE) clean diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 0000000..163aaf8 --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/quirc.pc.in b/quirc.pc.in new file mode 100644 index 0000000..3877015 --- /dev/null +++ b/quirc.pc.in @@ -0,0 +1,10 @@ +prefix=@PREFIX@ +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: quirc +Description: QR-code recognition library +Version: @VERSION@ +Libs: -L${libdir} -lquirc -lm +Cflags: -I${includedir}