[ptxdist] [PATCH] qrencode: new package: library and tools for encoding QR codes

2017-08-23 Thread Roland Hieber
Signed-off-by: Roland Hieber 

---
changes in v2:
 - use SECTION=multimedia_tools
 - always enable thread safety
---
 rules/qrencode.in   | 25 
 rules/qrencode.make | 67 +
 2 files changed, 92 insertions(+)
 create mode 100644 rules/qrencode.in
 create mode 100644 rules/qrencode.make

diff --git a/rules/qrencode.in b/rules/qrencode.in
new file mode 100644
index 0..e53f561b3
--- /dev/null
+++ b/rules/qrencode.in
@@ -0,0 +1,25 @@
+## SECTION=multimedia_tools
+
+menuconfig QRENCODE
+   tristate
+   prompt "qrencode  "
+   select LIBPNG   if QRENCODE_TOOLS
+   select LIBC_PTHREAD
+   help
+ Libqrencode is a C library for encoding data in a QR Code symbol, a
+ kind of 2D symbology that can be scanned by handy terminals such as a
+ mobile phone with CCD.
+
+if QRENCODE
+
+config QRENCODE_TOOLS
+   bool
+   default y
+   prompt "build tools"
+   help
+ Enable this option to build the qrencode tool to build QR codes from
+ the command line.
+
+endif
+
+# vim: ft=kconfig ts=8 noet tw=80
diff --git a/rules/qrencode.make b/rules/qrencode.make
new file mode 100644
index 0..d072e3622
--- /dev/null
+++ b/rules/qrencode.make
@@ -0,0 +1,67 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2017 by Roland Hieber 
+#
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_QRENCODE) += qrencode
+
+#
+# Paths and names
+#
+QRENCODE_VERSION   := 3.4.4
+QRENCODE_MD5   := be545f3ce36ea8fbb58612d72c4222de
+QRENCODE   := qrencode-$(QRENCODE_VERSION)
+QRENCODE_SUFFIX:= tar.gz
+QRENCODE_URL   := 
https://fukuchi.org/works/qrencode/$(QRENCODE).$(QRENCODE_SUFFIX)
+QRENCODE_SOURCE:= $(SRCDIR)/$(QRENCODE).$(QRENCODE_SUFFIX)
+QRENCODE_DIR   := $(BUILDDIR)/$(QRENCODE)
+QRENCODE_LICENSE   := LGPL-2.1+
+
+# 
+# Prepare
+# 
+
+QRENCODE_CONF_TOOL := autoconf
+QRENCODE_CONF_OPT  := \
+   $(CROSS_AUTOCONF_USR) \
+   --enable-thread-safety \
+   --disable-sdltest \
+   --disable-rpath \
+   --disable-gprof \
+   --disable-gcov \
+   --disable-mudflap \
+   --$(call ptx/wwo,PTXCONF_QRENCODE_TOOLS)-tools \
+   --without-tests
+
+# 
+# Target-Install
+# 
+
+$(STATEDIR)/qrencode.targetinstall:
+   @$(call targetinfo)
+
+   @$(call install_init, qrencode)
+   @$(call install_fixup, qrencode,PRIORITY,optional)
+   @$(call install_fixup, qrencode,SECTION,base)
+   @$(call install_fixup, qrencode,AUTHOR,"Roland Hieber 
")
+   @$(call install_fixup, qrencode,DESCRIPTION,missing)
+
+   @$(call install_lib, qrencode, 0, 0, 0644, libqrencode)
+
+ifdef PTXCONF_QRENCODE_TOOLS
+   @$(call install_copy, qrencode, 0, 0, 0755, -, /usr/bin/qrencode)
+endif
+
+   @$(call install_finish, qrencode)
+
+   @$(call touch)
+
+# vim: ft=make ts=8 noet tw=80
-- 
2.11.0


___
ptxdist mailing list
ptxdist@pengutronix.de

[ptxdist] [PATCH 4/7] poppler: version bump 0.18.0 -> 0.57.0

2017-08-23 Thread Roland Hieber
This is quite a version bump, spanning six years of poppler development.
Upstream now provides data for rendering cyrillic languages in the
package poppler-data, but this dependency is only detected at compile
time, so make sure the build order is right.

Some applications require the old xpdf headers, the CPP wrapper or CMYK
support, so make these configure options selectable. Same for the Splash
backend, which can now also be built with single precision or
fixed-point arithmetic. PNG and JPEG support is no longer broken,
poppler now also includes an internal DCT decoder. The GTK dependency
has been dropped (or was it even necessary in the first place?)

Don't wonder about --disable-relocatable, it only applies to Windows.

poppler allows using zlib to uncompress flate streams, but with the
warning that this is "not totally safe", so it is disabled.

Additionally, poppler could benefit from packaging libopenjpeg and
libtiff in ptxdist for parsing embedded JPEG2000 or TIFF in PDFs.
Likewise, libnss could be packaged for PDF signature support. Also
there is the option to build a Qt5 wrapper, but I don't have a good way
to test this, so it is currently disabled.

Signed-off-by: Roland Hieber 
---
 ...error-vector-in-namespace-std-does-not-na.patch | 56 ++
 patches/poppler-0.57.0/series  |  4 +
 rules/poppler.in   | 86 +-
 rules/poppler.make | 67 +
 4 files changed, 179 insertions(+), 34 deletions(-)
 create mode 100644 
patches/poppler-0.57.0/0001-Form.h-fix-error-vector-in-namespace-std-does-not-na.patch
 create mode 100644 patches/poppler-0.57.0/series

diff --git 
a/patches/poppler-0.57.0/0001-Form.h-fix-error-vector-in-namespace-std-does-not-na.patch
 
b/patches/poppler-0.57.0/0001-Form.h-fix-error-vector-in-namespace-std-does-not-na.patch
new file mode 100644
index 0..70bfdc36f
--- /dev/null
+++ 
b/patches/poppler-0.57.0/0001-Form.h-fix-error-vector-in-namespace-std-does-not-na.patch
@@ -0,0 +1,56 @@
+From: Roland Hieber 
+Date: Fri, 11 Aug 2017 11:44:26 +0200
+Subject: [PATCH] Form.h: fix error: 'vector' in namespace 'std' does not name
+ a type
+
+Original error message while compiling with
+OSELAS.Toolchain-2016.06.1-arm-v7a-linux-gnueabi,
+gcc-5.4.0-glibc-2.23-binutils-2.26-kernel-4.6-sanitized:
+
+   make[5]: Entering directory 
'/ptx/work/dude/WORK_B/rhi/OSELAS.BSP-Miele-PST/platform-cpu20/build-target/poppler-0.57.0/qt4/src'
+ CXX  libpoppler_qt4_la-poppler-form.lo
+   In file included from poppler-form.cc:26:0:
+   ../../poppler/Form.h:544:14: error: 'vector' in namespace 'std' does 
not name a template type
+   ../../poppler/Form.h:556:8: error: 'vector' in namespace 'std' does not 
name a template type
+   Makefile:735: recipe for target 'libpoppler_qt4_la-poppler-form.lo' 
failed
+
+configure arguments were:
+
+   --prefix=/usr --sysconfdir=/etc --localstatedir=/var
+   --libdir=/usr/lib --host=arm-v7a-linux-gnueabi
+   --build=x86_64-host-linux-gnu --enable-option-checking
+   --disable-silent-rules --disable-dependency-tracking
+   --enable-shared --enable-fast-install --enable-libtool-lock
+   --enable-xpdf-headers --enable-build-type=release
+   --disable-single-precision --enable-fixedpoint --enable-cmyk
+   --disable-relocatable --enable-libopenjpeg=none --disable-libnss
+   --disable-libtiff --enable-largefile --enable-zlib
+   --disable-zlib-uncompress --enable-libcurl
+   --enable-dctdecoder=libjpeg --enable-libpng
+   --disable-splash-output --enable-cairo-output
+   --enable-poppler-glib --disable-introspection --disable-gtk-doc
+   --disable-gtk-doc-html --disable-gtk-doc-pdf
+   --enable-poppler-qt4 --disable-poppler-qt5 --enable-poppler-cpp
+   --disable-gtk-test --enable-utils --disable-compile-warnings
+   --enable-cms=lcms1 --without-x
+   --with-font-configuration=fontconfig --without-libiconv-prefix
+   --with-testdatadir=
+
+Forwarded: https://bugs.freedesktop.org/show_bug.cgi?id=102147
+Signed-off-by: Roland Hieber 
+---
+ poppler/Form.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/poppler/Form.h b/poppler/Form.h
+index 8ddb6fe3d638..e0a3a28767bb 100644
+--- a/poppler/Form.h
 b/poppler/Form.h
+@@ -27,6 +27,7 @@
+ #include "Annot.h"
+ 
+ #include 
++#include 
+ 
+ class GooString;
+ class Array;
diff --git a/patches/poppler-0.57.0/series b/patches/poppler-0.57.0/series
new file mode 100644
index 0..9e7d355f4
--- /dev/null
+++ b/patches/poppler-0.57.0/series
@@ -0,0 +1,4 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-Form.h-fix-error-vector-in-namespace-std-does-not-na.patch
+# ed2ff81cec7f4cb784b9295817f9d1e8  - git-ptx-patches magic
diff --git a/rules/poppler.in b/rules/poppler.in
index b107dc7a5..793e19275 100644
--- a/rules/poppler.in
+++ b/rules/poppler.in
@@ -4,18 +4,21 @@ menuconf

[ptxdist] [PATCH 2/7] qpdf: new package: PDF inspection library and tools

2017-08-23 Thread Roland Hieber
Signed-off-by: Roland Hieber 
---
 .../0001-don-t-build-docs-examples-or-tests.patch  |  51 +
 patches/qpdf-6.0.0/series  |   4 +
 rules/qpdf.in  |  36 ++
 rules/qpdf.make| 121 +
 4 files changed, 212 insertions(+)
 create mode 100644 
patches/qpdf-6.0.0/0001-don-t-build-docs-examples-or-tests.patch
 create mode 100644 patches/qpdf-6.0.0/series
 create mode 100644 rules/qpdf.in
 create mode 100644 rules/qpdf.make

diff --git a/patches/qpdf-6.0.0/0001-don-t-build-docs-examples-or-tests.patch 
b/patches/qpdf-6.0.0/0001-don-t-build-docs-examples-or-tests.patch
new file mode 100644
index 0..2c7d66f94
--- /dev/null
+++ b/patches/qpdf-6.0.0/0001-don-t-build-docs-examples-or-tests.patch
@@ -0,0 +1,51 @@
+From: Roland Hieber 
+Date: Tue, 11 Jul 2017 14:54:15 +0200
+Subject: [PATCH] don't build docs, examples, or tests
+
+Those components are not needed and fail during cross-build. Sadly the
+build system is not very modular and does not allow the user to select
+which components are being built, so we resort to patching the build
+system.
+
+Forwarded: not-needed
+Signed-off-by: Roland Hieber 
+---
+ Makefile| 2 +-
+ make/libtool.mk | 6 --
+ 2 files changed, 1 insertion(+), 7 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index e882672b0d6b..8a9211e800a5 100644
+--- a/Makefile
 b/Makefile
+@@ -30,7 +30,7 @@
+ # install to install in a separate location.  This is useful for
+ # packagers.
+ 
+-BUILD_ITEMS := manual libqpdf zlib-flate libtests qpdf examples
++BUILD_ITEMS := libqpdf zlib-flate qpdf
+ OUTPUT_DIR = build
+ ALL_TARGETS =
+ 
+diff --git a/make/libtool.mk b/make/libtool.mk
+index 0d1d8bee..967d3416f893 100644
+--- a/make/libtool.mk
 b/make/libtool.mk
+@@ -110,8 +110,6 @@ install: all
+   ./mkinstalldirs $(DESTDIR)$(libdir)/pkgconfig
+   ./mkinstalldirs $(DESTDIR)$(bindir)
+   ./mkinstalldirs $(DESTDIR)$(includedir)/qpdf
+-  ./mkinstalldirs $(DESTDIR)$(docdir)
+-  ./mkinstalldirs $(DESTDIR)$(mandir)/man1
+   $(LIBTOOL) --mode=install ./install-sh \
+   libqpdf/$(OUTPUT_DIR)/libqpdf.la \
+   $(DESTDIR)$(libdir)/libqpdf.la
+@@ -125,8 +123,4 @@ install: all
+   cp qpdf/fix-qdf $(DESTDIR)$(bindir)
+   cp include/qpdf/*.h $(DESTDIR)$(includedir)/qpdf
+   cp include/qpdf/*.hh $(DESTDIR)$(includedir)/qpdf
+-  cp doc/stylesheet.css $(DESTDIR)$(docdir)
+-  cp doc/qpdf-manual.html $(DESTDIR)$(docdir)
+-  cp doc/qpdf-manual.pdf $(DESTDIR)$(docdir)
+-  cp doc/*.1 $(DESTDIR)$(mandir)/man1
+   cp libqpdf.pc $(DESTDIR)$(libdir)/pkgconfig
diff --git a/patches/qpdf-6.0.0/series b/patches/qpdf-6.0.0/series
new file mode 100644
index 0..46062ee5b
--- /dev/null
+++ b/patches/qpdf-6.0.0/series
@@ -0,0 +1,4 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-don-t-build-docs-examples-or-tests.patch
+# 9fe87092b570d1599b737ceb198ad63e  - git-ptx-patches magic
diff --git a/rules/qpdf.in b/rules/qpdf.in
new file mode 100644
index 0..5c0ee0726
--- /dev/null
+++ b/rules/qpdf.in
@@ -0,0 +1,36 @@
+## SECTION=system_libraries
+
+menuconfig QPDF
+   tristate
+   prompt "qpdf  "
+
+   select LIBPCRE
+   select ZLIB
+
+   help
+ QPDF is a library that can be used to linearize (web-optimize),
+ encrypt (password-protect), decrypt, and inspect PDF files.
+
+if QPDF
+
+choice
+   prompt "randomness source"
+   default QPDF_RANDOM_DEV_URANDOM
+
+   config QPDF_RANDOM_LIBC
+   bool "libc rand()"
+
+   config QPDF_RANDOM_DEV_RANDOM
+   bool "/dev/random"
+
+   config QPDF_RANDOM_DEV_URANDOM
+   bool "/dev/urandom"
+endchoice
+
+config QPDF_TOOLS
+   bool "install tools"
+   help
+ Install the tools. Those include qpdf, zlib-flate, and fix-qdf.
+
+endif
+# vim: ft=kconfig ts=8 noet tw=80
diff --git a/rules/qpdf.make b/rules/qpdf.make
new file mode 100644
index 0..b65709bdc
--- /dev/null
+++ b/rules/qpdf.make
@@ -0,0 +1,121 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2017 by Roland Hieber 
+#
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_QPDF) += qpdf
+
+#
+# Paths and names
+#
+QPDF_VERSION   := 6.0.0
+QPDF_MD5   := a0601b0bc56d3f412fd3afecfce2721c
+QPDF   := qpdf-$(QPDF_VERSION)
+QPDF_SUFFIX:= tar.gz
+QPDF_URL   := $(call ptx/mirror, SF, 
/qpdf/qpdf/$(QPDF_VERSION)/$(QPDF).$(QPDF_SUFFIX))
+QPDF_SOURCE:= $(SRCDIR)/$(QPDF).$(QPDF_SUFFIX)
+QPDF_DIR   := $(BUILDDIR)/$(QPDF)
+QPDF_LICENSE   := Artistic-2.0
+
+# 
+# Prepare
+# ---

[ptxdist] [PATCH 1/7] libpaper: new package: system-wide papersize configuration

2017-08-23 Thread Roland Hieber
Signed-off-by: Roland Hieber 
---
 rules/libpaper.in   | 32 ++
 rules/libpaper.make | 77 +
 2 files changed, 109 insertions(+)
 create mode 100644 rules/libpaper.in
 create mode 100644 rules/libpaper.make

diff --git a/rules/libpaper.in b/rules/libpaper.in
new file mode 100644
index 0..6052d2c14
--- /dev/null
+++ b/rules/libpaper.in
@@ -0,0 +1,32 @@
+## SECTION=multimedia_libs
+
+menuconfig LIBPAPER
+   tristate
+   prompt "libpaper  "
+   select HOST_AUTOTOOLS_AUTOCONF
+   select HOST_AUTOTOOLS_LIBTOOL
+   help
+ System-wide paper size configuration
+
+if LIBPAPER
+
+config LIBPAPER_SIZE
+   string "default fallback paper size"
+   default "letter"
+   help
+ Paper size that is used if nothing else is specified in /etc/papersize
+
+config LIBPAPER_PAPERCONFIG
+   bool "install paperconfig"
+   help
+ Install the paperconfig tool which sets the default paper size of the
+ system
+
+config LIBPAPER_PAPERCONF
+   bool "install paperconf"
+   help
+ Install the paperconf tool which prints information about a specific
+ paper size
+
+endif
+# vim: ft=kconfig ts=8 noet tw=80
diff --git a/rules/libpaper.make b/rules/libpaper.make
new file mode 100644
index 0..3e94ed2f2
--- /dev/null
+++ b/rules/libpaper.make
@@ -0,0 +1,77 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2017 by Roland Hieber 
+#
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_LIBPAPER) += libpaper
+
+#
+# Paths and names
+#
+# libpaper seems to be maintained only as a Debian package, therefore the
+# unusual versioning.
+#
+LIBPAPER_VERSION   := 1.1.24+nmu5
+LIBPAPER_MD5   := 38bc55688c0fc5544edaa5a951a45fbd
+LIBPAPER   := libpaper-$(LIBPAPER_VERSION)
+LIBPAPER_SUFFIX:= tar.gz
+LIBPAPER_URL   := 
http://http.debian.net/debian/pool/main/libp/libpaper/libpaper_$(LIBPAPER_VERSION).$(LIBPAPER_SUFFIX)
+LIBPAPER_SOURCE:= $(SRCDIR)/$(LIBPAPER).$(LIBPAPER_SUFFIX)
+LIBPAPER_DIR   := $(BUILDDIR)/$(LIBPAPER)
+LIBPAPER_LICENSE   := GPL-2.0
+
+# 
+# Prepare
+# 
+
+LIBPAPER_CONF_ENV  := \
+   $(CROSS_ENV) \
+   PAPERSIZE=$(PTXCONF_LIBPAPER_SIZE)
+
+#
+# autoconf, but upstream does not provide a ./configure
+#
+$(STATEDIR)/libpaper.prepare:
+   @$(call targetinfo)
+   @$(call clean, $(LIBPAPER_DIR)/config.cache)
+   @cd $(LIBPAPER_DIR) && \
+   autoreconf --install && \
+   $(LIBPAPER_PATH) $(LIBPAPER_CONF_ENV) \
+   ./configure $(CROSS_AUTOCONF_USR)
+   @$(call touch)
+
+# 
+# Target-Install
+# 
+
+$(STATEDIR)/libpaper.targetinstall:
+   @$(call targetinfo)
+
+   @$(call install_init, libpaper)
+   @$(call install_fixup, libpaper,PRIORITY,optional)
+   @$(call install_fixup, libpaper,SECTION,base)
+   @$(call install_fixup, libpaper,AUTHOR,"Roland Hieber 
")
+   @$(call install_fixup, libpaper,DESCRIPTION,missing)
+
+   @$(call install_lib, libpaper, 0, 0, 0755, libpaper)
+
+ifeq ($(PTXCONF_LIBPAPER_PAPERCONFIG),y)
+   @$(call install_copy, libpaper, 0, 0, 755, -, /usr/sbin/paperconfig)
+endif
+ifeq ($(PTXCONF_LIBPAPER_PAPERCONF),y)
+   @$(call install_copy, libpaper, 0, 0, 755, -, /usr/bin/paperconf)
+endif
+
+   @$(call install_finish, libpaper)
+
+   @$(call touch)
+
+# vim: ft=make ts=8 noet tw=80
-- 
2.11.0


___
ptxdist mailing list
ptxdist@pengutronix.de

[ptxdist] [PATCH 3/7] poppler-data: new package: optional encoding data for poppler

2017-08-23 Thread Roland Hieber
Signed-off-by: Roland Hieber 
---
 rules/poppler-data.in   | 10 +++
 rules/poppler-data.make | 79 +
 2 files changed, 89 insertions(+)
 create mode 100644 rules/poppler-data.in
 create mode 100644 rules/poppler-data.make

diff --git a/rules/poppler-data.in b/rules/poppler-data.in
new file mode 100644
index 0..61796949e
--- /dev/null
+++ b/rules/poppler-data.in
@@ -0,0 +1,10 @@
+## SECTION=multimedia_gtk
+
+config POPPLER_DATA
+   tristate
+   prompt "poppler-data"
+   help
+ Encoding data which enables poppler to correctly render CJK and
+ Cyrillic languages.
+
+# vim: ft=kconfig ts=8 noet tw=80
diff --git a/rules/poppler-data.make b/rules/poppler-data.make
new file mode 100644
index 0..2b51a61a9
--- /dev/null
+++ b/rules/poppler-data.make
@@ -0,0 +1,79 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2017 by Roland Hieber 
+#
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_POPPLER_DATA) += poppler-data
+
+#
+# Paths and names
+#
+POPPLER_DATA_VERSION   := 0.4.7
+POPPLER_DATA_MD5   := 636a8f2b9f6df9e7ced8ec0946961eaf
+POPPLER_DATA   := poppler-data-$(POPPLER_DATA_VERSION)
+POPPLER_DATA_SUFFIX:= tar.gz
+POPPLER_DATA_URL   := 
https://poppler.freedesktop.org/$(POPPLER_DATA).$(POPPLER_DATA_SUFFIX)
+POPPLER_DATA_SOURCE:= $(SRCDIR)/$(POPPLER_DATA).$(POPPLER_DATA_SUFFIX)
+POPPLER_DATA_DIR   := $(BUILDDIR)/$(POPPLER_DATA)
+POPPLER_DATA_LICENSE   := GPL-2.0 AND MIT AND BSD-3-Clause
+
+# 
+# Prepare
+# 
+POPPLER_DATA_CONF_TOOL := NO
+
+# 
+# Compile
+# 
+
+$(STATEDIR)/poppler-data.compile:
+   @$(call targetinfo)
+   @$(call touch)
+
+# 
+# Install
+# 
+
+POPPLER_DATA_INSTALL_OPT := prefix=/usr install
+
+$(STATEDIR)/poppler-data.install:
+   @$(call targetinfo)
+   @$(call world/install, POPPLER_DATA)
+   @$(call touch)
+
+# 
+# Target-Install
+# 
+
+$(STATEDIR)/poppler-data.targetinstall:
+   @$(call targetinfo)
+
+   @$(call install_init, poppler-data)
+   @$(call install_fixup, poppler-data,PRIORITY,optional)
+   @$(call install_fixup, poppler-data,SECTION,base)
+   @$(call install_fixup, poppler-data,AUTHOR,"Roland Hieber 
")
+   @$(call install_fixup, poppler-data,DESCRIPTION,missing)
+
+   @$(call install_tree, poppler-data, 0, 0, -, /usr/share/poppler)
+
+   @$(call install_finish, poppler-data)
+
+   @$(call touch)
+
+# 
+# Clean
+# 
+
+#$(STATEDIR)/poppler-data.clean:
+#  @$(call targetinfo)
+#  @$(call clean_pkg, POPPLER_DATA)
+
+# vim: ft=make ts=8 tw=80
-- 
2.11.0


___
ptxdist mailing list
ptxdist@pengutronix.de

[ptxdist] [PATCH 5/7] cups: new package: Common Unix Printing System

2017-08-23 Thread Roland Hieber
If using systemd, CUPS can be started via socket activation or directly,
in any case it is run as user daemon, group lp. The default spool and
cache locations were moved to /tmp/cups so we don't need to set up a
tmpfs for /var/spool/cups and /var/cache/cups.

sysvinit script is installed from upstream, but untested.

Some config files are only created by cupsd on the first start and not
at install time, so we supply reasonable defaults in projectroot/ in
order to use $(call install_alternative...) on them.

Signed-off-by: Roland Hieber 
---
 projectroot/etc/cups/classes.conf   |   1 +
 projectroot/etc/cups/client.conf|   2 +
 projectroot/etc/cups/cups-files.conf|  22 +++
 projectroot/etc/cups/mailto.conf|   1 +
 projectroot/etc/cups/ppd/.createdirectory   |   0
 projectroot/etc/cups/printers.conf  |   1 +
 projectroot/etc/cups/ssl/.createdirectory   |   0
 projectroot/etc/printcap|   3 +
 projectroot/usr/lib/systemd/system/cups.service |  15 ++
 projectroot/usr/lib/systemd/system/cups.socket  |  14 ++
 projectroot/usr/lib/tmpfiles.d/cups.conf|   6 +
 rules/cups.in   | 142 +++
 rules/cups.make | 227 
 13 files changed, 434 insertions(+)
 create mode 100644 projectroot/etc/cups/classes.conf
 create mode 100644 projectroot/etc/cups/client.conf
 create mode 100644 projectroot/etc/cups/cups-files.conf
 create mode 100644 projectroot/etc/cups/mailto.conf
 create mode 100644 projectroot/etc/cups/ppd/.createdirectory
 create mode 100644 projectroot/etc/cups/printers.conf
 create mode 100644 projectroot/etc/cups/ssl/.createdirectory
 create mode 100644 projectroot/etc/printcap
 create mode 100644 projectroot/usr/lib/systemd/system/cups.service
 create mode 100644 projectroot/usr/lib/systemd/system/cups.socket
 create mode 100644 projectroot/usr/lib/tmpfiles.d/cups.conf
 create mode 100644 rules/cups.in
 create mode 100644 rules/cups.make

diff --git a/projectroot/etc/cups/classes.conf 
b/projectroot/etc/cups/classes.conf
new file mode 100644
index 0..dea737751
--- /dev/null
+++ b/projectroot/etc/cups/classes.conf
@@ -0,0 +1 @@
+# classes.conf - class configuration file for cups
diff --git a/projectroot/etc/cups/client.conf b/projectroot/etc/cups/client.conf
new file mode 100644
index 0..f8f0b6832
--- /dev/null
+++ b/projectroot/etc/cups/client.conf
@@ -0,0 +1,2 @@
+# CUPS client configuration
+ServerName localhost
diff --git a/projectroot/etc/cups/cups-files.conf 
b/projectroot/etc/cups/cups-files.conf
new file mode 100644
index 0..2cc2d5a5b
--- /dev/null
+++ b/projectroot/etc/cups/cups-files.conf
@@ -0,0 +1,22 @@
+# File/directory/user/group configuration file for the CUPS scheduler.
+User daemon
+Group lp
+SystemGroup root
+
+AccessLog /var/log/cups/access_log
+ErrorLog /var/log/cups/error_log
+PageLog /var/log/cups/page_log
+
+CacheDir /tmp/cups/cache
+DataDir /usr/share/cups
+DocumentRoot /usr/share/doc/cups
+RequestRoot /tmp/cups/spool
+ServerBin /usr/lib/cups
+ServerRoot /etc/cups
+StateDir /var/run/cups
+
+Printcap /etc/printcap
+PrintcapFormat bsd
+
+# SSL/TLS keychain for the scheduler...
+#ServerKeychain ssl
diff --git a/projectroot/etc/cups/mailto.conf b/projectroot/etc/cups/mailto.conf
new file mode 100644
index 0..4502adaee
--- /dev/null
+++ b/projectroot/etc/cups/mailto.conf
@@ -0,0 +1 @@
+# mailto.conf - configuration file for cups email notifier
diff --git a/projectroot/etc/cups/ppd/.createdirectory 
b/projectroot/etc/cups/ppd/.createdirectory
new file mode 100644
index 0..e69de29bb
diff --git a/projectroot/etc/cups/printers.conf 
b/projectroot/etc/cups/printers.conf
new file mode 100644
index 0..bf9879904
--- /dev/null
+++ b/projectroot/etc/cups/printers.conf
@@ -0,0 +1 @@
+# printers.conf - printer configuration file for cups
diff --git a/projectroot/etc/cups/ssl/.createdirectory 
b/projectroot/etc/cups/ssl/.createdirectory
new file mode 100644
index 0..e69de29bb
diff --git a/projectroot/etc/printcap b/projectroot/etc/printcap
new file mode 100644
index 0..e74f358e1
--- /dev/null
+++ b/projectroot/etc/printcap
@@ -0,0 +1,3 @@
+# This file was automatically generated by cupsd(8) from the
+# /etc/cups/printers.conf file.  All changes to this file
+# will be lost.
diff --git a/projectroot/usr/lib/systemd/system/cups.service 
b/projectroot/usr/lib/systemd/system/cups.service
new file mode 100644
index 0..ff94f69d2
--- /dev/null
+++ b/projectroot/usr/lib/systemd/system/cups.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=CUPS Scheduler service
+Documentation=man:cupsd(8)
+Requires=systemd-tmpfiles-setup.service
+Requires=cups.socket
+
+[Service]
+User=daemon
+Group=lp
+ExecStart=/usr/sbin/cupsd -l -c /etc/cups/cupsd.conf -s 
/etc/cups/cups-files.conf
+Type=simple
+
+[Install]
+Also=cups.socket
+WantedBy=printer.target
diff --git 

[ptxdist] [PATCH 7/7] cups-filters: new package: additional filters and backends for CUPS

2017-08-23 Thread Roland Hieber
Upstream is very responsive, merged some patches and made a new release
while I was still packaging the old one :)

Signed-off-by: Roland Hieber 
---
 .../0001-configure.ac-check-for-C-11-support.patch | 1019 
 patches/cups-filters-1.16.1/autogen.sh |2 +
 patches/cups-filters-1.16.1/series |4 +
 rules/cups-filters.in  |   69 ++
 rules/cups-filters.make|   96 ++
 5 files changed, 1190 insertions(+)
 create mode 100644 
patches/cups-filters-1.16.1/0001-configure.ac-check-for-C-11-support.patch
 create mode 100755 patches/cups-filters-1.16.1/autogen.sh
 create mode 100644 patches/cups-filters-1.16.1/series
 create mode 100644 rules/cups-filters.in
 create mode 100644 rules/cups-filters.make

diff --git 
a/patches/cups-filters-1.16.1/0001-configure.ac-check-for-C-11-support.patch 
b/patches/cups-filters-1.16.1/0001-configure.ac-check-for-C-11-support.patch
new file mode 100644
index 0..a7d308e0e
--- /dev/null
+++ b/patches/cups-filters-1.16.1/0001-configure.ac-check-for-C-11-support.patch
@@ -0,0 +1,1019 @@
+From: Roland Hieber 
+Date: Tue, 15 Aug 2017 12:53:14 +0200
+Subject: [PATCH] configure.ac: check for C++11 support
+
+The filters pdftoopvp, bannertopdf and pdftoraster depend on features
+only available in C++11, indirectly also because poppler does not put
+-std=c++11 on its pkg-config CFLAGS (but I'm not sure whether it should
+even do this). Solve this problems by adding -std=c++1 to $(CXX), if
+necessary, or fail if the compiler does not support C++11.
+
+Forwarded: https://bugs.linuxfoundation.org/show_bug.cgi?id=1404
+Applied-Upstream: 
http://bzr.linuxfoundation.org/loggerhead/openprinting/cups-filters/revision/7674
+Signed-off-by: Roland Hieber 
+---
+ configure.ac|   1 +
+ m4/ax_cxx_compile_stdcxx.m4 | 982 
+ 2 files changed, 983 insertions(+)
+ create mode 100644 m4/ax_cxx_compile_stdcxx.m4
+
+diff --git a/configure.ac b/configure.ac
+index 6ce671e6026a..7ad5592e0423 100644
+--- a/configure.ac
 b/configure.ac
+@@ -52,6 +52,7 @@ AH_BOTTOM([
+ # ===
+ AC_PROG_CC
+ AC_PROG_CXX
++AX_CXX_COMPILE_STDCXX([11],[noext],[mandatory])
+ AM_PROG_CC_C_O
+ AC_PROG_CPP
+ AC_PROG_INSTALL
+diff --git a/m4/ax_cxx_compile_stdcxx.m4 b/m4/ax_cxx_compile_stdcxx.m4
+new file mode 100644
+index ..5032bba8091d
+--- /dev/null
 b/m4/ax_cxx_compile_stdcxx.m4
+@@ -0,0 +1,982 @@
++# ===
++#  https://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx.html
++# ===
++#
++# SYNOPSIS
++#
++#   AX_CXX_COMPILE_STDCXX(VERSION, [ext|noext], [mandatory|optional])
++#
++# DESCRIPTION
++#
++#   Check for baseline language coverage in the compiler for the specified
++#   version of the C++ standard.  If necessary, add switches to CXX and
++#   CXXCPP to enable support.  VERSION may be '11' (for the C++11 standard)
++#   or '14' (for the C++14 standard).
++#
++#   The second argument, if specified, indicates whether you insist on an
++#   extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g.
++#   -std=c++11).  If neither is specified, you get whatever works, with
++#   preference for an extended mode.
++#
++#   The third argument, if specified 'mandatory' or if left unspecified,
++#   indicates that baseline support for the specified C++ standard is
++#   required and that the macro should error out if no mode with that
++#   support is found.  If specified 'optional', then configuration proceeds
++#   regardless, after defining HAVE_CXX${VERSION} if and only if a
++#   supporting mode is found.
++#
++# LICENSE
++#
++#   Copyright (c) 2008 Benjamin Kosnik 
++#   Copyright (c) 2012 Zack Weinberg 
++#   Copyright (c) 2013 Roy Stogner 
++#   Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov 

++#   Copyright (c) 2015 Paul Norman 
++#   Copyright (c) 2015 Moritz Klammler 
++#   Copyright (c) 2016 Krzesimir Nowak 
++#
++#   Copying and distribution of this file, with or without modification, are
++#   permitted in any medium without royalty provided the copyright notice
++#   and this notice are preserved.  This file is offered as-is, without any
++#   warranty.
++
++#serial 7
++
++dnl  This macro is based on the code from the AX_CXX_COMPILE_STDCXX_11 macro
++dnl  (serial version number 13).
++
++AX_REQUIRE_DEFINED([AC_MSG_WARN])
++AC_DEFUN([AX_CXX_COMPILE_STDCXX], [dnl
++  m4_if([$1], [11], [ax_cxx_compile_alternatives="11 0x"],
++[$1], [14], [ax_cxx_compile_alternatives="14 1y"],
++[$1], [17], [ax_cxx_compile_alternatives="17 1z"],
++[m4_fatal([invalid first argument `$1' to AX_CXX_COMPILE_STDCXX])])dnl
++  m4_if([$2], [], [],
++[$2], [ext], [],
++[$2], [noext], [],
++[m4_fatal([invalid seco

[ptxdist] [PATCH 6/7] host-cups: new package: CUPS PPD compiler

2017-08-23 Thread Roland Hieber
Most printer drivers compile model-specific PPDs from a generic schema
using ppdc during the build process. For this, ppdc must be able to find
CUPS' internal include files in sysroot-target. Unfortunately, the CUPS
build system is rather inflexible, so we have to build nearly everything
to get a working ppdc.

Signed-off-by: Roland Hieber 
---
 rules/host-cups.in   |   7 
 rules/host-cups.make | 108 +++
 2 files changed, 115 insertions(+)
 create mode 100644 rules/host-cups.in
 create mode 100644 rules/host-cups.make

diff --git a/rules/host-cups.in b/rules/host-cups.in
new file mode 100644
index 0..45edccada
--- /dev/null
+++ b/rules/host-cups.in
@@ -0,0 +1,7 @@
+## SECTION=hosttools_noprompt
+
+config HOST_CUPS
+   tristate
+   default ALLYES
+
+# vim: ft=kconfig ts=8 noet tw=80
diff --git a/rules/host-cups.make b/rules/host-cups.make
new file mode 100644
index 0..f45855d19
--- /dev/null
+++ b/rules/host-cups.make
@@ -0,0 +1,108 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2017 by Roland Hieber 
+#
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_CUPS) += host-cups
+
+# 
+# Prepare
+# 
+
+HOST_CUPS_CONF_ENV := $(HOST_ENV)
+
+#
+# autoconf
+#
+# The --with-* options are only used to specify strings, --without-* does
+# nothing. So we're omitting them here. The only exception is
+# --with-components=core, which we are setting to only builds libcups* (which 
is
+# needed by ppdc).
+#
+# We have to set --exec-prefix and --libdir, otherwise the libs end up in
+# ${prefix}/lib64, which is not what we want.
+#
+HOST_CUPS_CONF_TOOL:= autoconf
+HOST_CUPS_CONF_OPT := \
+   $(HOST_AUTOCONF) \
+   --exec-prefix=/usr/ \
+   --libdir=/usr/lib/ \
+   --disable-mallinfo \
+   --disable-libpaper \
+   --disable-libusb \
+   --disable-tcp-wrappers \
+   --disable-acl \
+   --disable-dbus \
+   --disable-libtool-unsupported \
+   --disable-debug \
+   --disable-debug-guards \
+   --disable-debug-printfs \
+   --disable-unit-tests \
+   --disable-relro \
+   --disable-gssapi \
+   --disable-threads \
+   --disable-ssl \
+   --disable-cdsassl \
+   --disable-gnutls \
+   --disable-pam \
+   --disable-largefile \
+   --disable-avahi \
+   --disable-dnssd \
+   --disable-launchd \
+   --disable-systemd \
+   --disable-upstart \
+   --disable-page-logging \
+   --disable-browsing \
+   --disable-default-shared \
+   --disable-raw-printing \
+   --disable-webif \
+   --with-components=core
+
+# 
+# Install
+# 
+
+HOST_CUPS_MAKE_ENV := \
+   DSTROOT=$(HOST_CUPS_PKGDIR)
+
+$(STATEDIR)/host-cups.install:
+   @$(call targetinfo)
+
+   @$(call world/install, HOST_CUPS)
+
+   @# ppdc isn't built by --with-components=core
+   $(MAKE) -C ${HOST_CUPS_DIR}/ppdc $(HOST_CUPS_MAKE_ENV) install
+
+   @$(call touch)
+
+CROSS_PPDC = $(PTXDIST_SYSROOT_CROSS)/bin/ppdc
+$(STATEDIR)/host-cups.install.post:
+   @$(call targetinfo)
+   @$(call world/install.post, HOST_CUPS)
+
+   ( \
+   echo '#!/bin/sh'; \
+   echo 'LD_LIBRARY_PATH=$(PTXDIST_SYSROOT_HOST)/usr/lib 
$(PTXDIST_SYSROOT_HOST)/usr/bin/ppdc -I $(SYSROOT)/usr/share/cups/ppdc "$$@"'; \
+   ) > $(CROSS_PPDC)
+   chmod +x $(CROSS_PPDC)
+
+   @$(call touch)
+
+# 
+# Clean
+# 
+
+$(STATEDIR)/host-cups.clean:
+   @$(call targetinfo)
+   @$(call clean_pkg, HOST_CUPS)
+   rm -f $(CROSS_PPDC)
+
+# vim: ft=make ts=8 tw=80
-- 
2.11.0


___
ptxdist mailing list
ptxdist@pengutronix.de

[ptxdist] [PATCH 0/7] package (some of) the CUPS ecosystem

2017-08-23 Thread Roland Hieber
The main focus of this patch series is to get support for a PDF-driven printing
workflow into PTXdist. The dependency tree basically looks like this:

  CUPS: The Common Unix Printing System: server and clients (cupsd, lpr, lpstat,
  |  lpadmin, ...). Additional host-cups package for the PPD compiler, in case
  |  some printer drivers need it.
  |
  +-- cups-filters: additional CUPS filters and backends, notably pdftoraster,
  |   |  pdftops, imagetoXXX, etc. that were once part of CUPS, but have since
  |   |  been removed. (TODO: maybe install and test cups-browsed for mDNS
  |   |  discovery of printers)
  |   |
  |   +-- qpdf: PDF handling, for pdftopdf filter
  |   +-- poppler: PDF handling, for pdftoXXX filters and imagetoXXX filters,
  |   |   big version bump spanning multiple years of development
  |   |
  |   +-- poppler-data: optional dependency for cyrillic language support
  |   +-- libjpeg, libpng support is no longer broken
  |   +-- (TODO: maybe package libtiff and libopenjpeg in the future?)
  |
  +-- libpaper: optional dependency for system-wide papersize configuration.
Low-hanging fruit, it was easy to package and included rather for
completeness :)

As mentioned, there is still room to expand the feature set, but I think with
the focus on PDF as input format the usual use cases for a print server nowadays
should be covered here.

 - Roland

Roland Hieber (7):
  libpaper: new package: system-wide papersize configuration
  qpdf: new package: PDF inspection library and tools
  poppler-data: new package: optional encoding data for poppler
  poppler: version bump 0.18.0 -> 0.57.0
  cups: new package: Common Unix Printing System
  host-cups: new package: CUPS PPD compiler
  cups-filters: new package: additional filters and backends for CUPS

 .../0001-configure.ac-check-for-C-11-support.patch | 1019 
 patches/cups-filters-1.16.1/autogen.sh |2 +
 patches/cups-filters-1.16.1/series |4 +
 ...error-vector-in-namespace-std-does-not-na.patch |   56 ++
 patches/poppler-0.57.0/series  |4 +
 .../0001-don-t-build-docs-examples-or-tests.patch  |   51 +
 patches/qpdf-6.0.0/series  |4 +
 projectroot/etc/cups/classes.conf  |1 +
 projectroot/etc/cups/client.conf   |2 +
 projectroot/etc/cups/cups-files.conf   |   22 +
 projectroot/etc/cups/mailto.conf   |1 +
 projectroot/etc/cups/ppd/.createdirectory  |0
 projectroot/etc/cups/printers.conf |1 +
 projectroot/etc/cups/ssl/.createdirectory  |0
 projectroot/etc/printcap   |3 +
 projectroot/usr/lib/systemd/system/cups.service|   15 +
 projectroot/usr/lib/systemd/system/cups.socket |   14 +
 projectroot/usr/lib/tmpfiles.d/cups.conf   |6 +
 rules/cups-filters.in  |   69 ++
 rules/cups-filters.make|   96 ++
 rules/cups.in  |  142 +++
 rules/cups.make|  227 +
 rules/host-cups.in |7 +
 rules/host-cups.make   |  108 +++
 rules/libpaper.in  |   32 +
 rules/libpaper.make|   77 ++
 rules/poppler-data.in  |   10 +
 rules/poppler-data.make|   79 ++
 rules/poppler.in   |   86 +-
 rules/poppler.make |   67 +-
 rules/qpdf.in  |   36 +
 rules/qpdf.make|  121 +++
 32 files changed, 2328 insertions(+), 34 deletions(-)
 create mode 100644 
patches/cups-filters-1.16.1/0001-configure.ac-check-for-C-11-support.patch
 create mode 100755 patches/cups-filters-1.16.1/autogen.sh
 create mode 100644 patches/cups-filters-1.16.1/series
 create mode 100644 
patches/poppler-0.57.0/0001-Form.h-fix-error-vector-in-namespace-std-does-not-na.patch
 create mode 100644 patches/poppler-0.57.0/series
 create mode 100644 
patches/qpdf-6.0.0/0001-don-t-build-docs-examples-or-tests.patch
 create mode 100644 patches/qpdf-6.0.0/series
 create mode 100644 projectroot/etc/cups/classes.conf
 create mode 100644 projectroot/etc/cups/client.conf
 create mode 100644 projectroot/etc/cups/cups-files.conf
 create mode 100644 projectroot/etc/cups/mailto.conf
 create mode 100644 projectroot/etc/cups/ppd/.createdirectory
 create mode 100644 projectroot/etc/cups/printers.conf
 create mode 100644 projectroot/etc/cups/ssl/.createdirectory
 create mode 100644 projectroot/etc/printcap
 create mode 100644 projectroot/usr/lib/systemd/system/cups.service
 create mode 100644 projectroot/usr/lib/systemd/system/cups.socket
 create mode 100644 projectroot/usr/lib/tmpfiles.d/cups.conf
 

[ptxdist] [PATCH v2 2/4] lighttpd: Rename memcache option to memcached

2017-08-23 Thread Alexander Dahl
The memcached ./configure option for lighttpd changed, better reflecting
a daemon for memory caching should be used (see previous patch). For
making this consistent, the menu variable is also renamed here.

Took this from a not applied patch from 2016, and added the necessary
migration helper suggested by Michael Olbrich.

Suggested-by: Andreas Geisenhainer 
Signed-off-by: Alexander Dahl 
---
 rules/lighttpd.in   | 6 +++---
 rules/lighttpd.make | 2 +-
 scripts/migrate/migrate_ptx | 8 
 3 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/rules/lighttpd.in b/rules/lighttpd.in
index d535394..dd761df 100644
--- a/rules/lighttpd.in
+++ b/rules/lighttpd.in
@@ -16,7 +16,7 @@ menuconfig LIGHTTPD
select SQLITE   if LIGHTTPD_WEBDAV_PROPS
select LIBUUID  if LIGHTTPD_WEBDAV_LOCKS
select OPENSSL  if LIGHTTPD_OPENSSL
-   select LIBMEMCACHE  if LIGHTTPD_MEMCACHE
+   select LIBMEMCACHE  if LIGHTTPD_MEMCACHED
select LUA  if LIGHTTPD_LUA
select LUA_INSTALL_LIBLUA   if LIGHTTPD_LUA
select PHP5 if LIGHTTPD_MOD_FASTCGI_PHP && RUNTIME
@@ -60,7 +60,7 @@ config LIGHTTPD_LUA
help
  lua engine for mod_cml and mod_magnet
 
-config LIGHTTPD_MEMCACHE
+config LIGHTTPD_MEMCACHED
bool
prompt "memcached storage"
help
@@ -171,7 +171,7 @@ config LIGHTTPD_MOD_REWRITE
 
 config LIGHTTPD_MOD_TRIGGER_B4_DL
bool
-   select LIGHTTPD_MEMCACHE
+   select LIGHTTPD_MEMCACHED
select LIGHTTPD_PCRE
prompt "mod_trigger_b4_dl"
help
diff --git a/rules/lighttpd.make b/rules/lighttpd.make
index fd6e1cf..8b52267 100644
--- a/rules/lighttpd.make
+++ b/rules/lighttpd.make
@@ -60,7 +60,7 @@ LIGHTTPD_CONF_OPT := \
--$(call ptx/wwo, PTXCONF_LIGHTTPD_WEBDAV_LOCKS)-uuid \
--without-gdbm \
--without-geoip \
-   --$(call ptx/wwo, PTXCONF_LIGHTTPD_MEMCACHE)-memcached \
+   --$(call ptx/wwo, PTXCONF_LIGHTTPD_MEMCACHED)-memcached \
--$(call ptx/wwo, PTXCONF_LIGHTTPD_LUA)-lua
 
 # 
diff --git a/scripts/migrate/migrate_ptx b/scripts/migrate/migrate_ptx
index d684137..d92beb5 100755
--- a/scripts/migrate/migrate_ptx
+++ b/scripts/migrate/migrate_ptx
@@ -290,3 +290,11 @@ s/^\(\(# 
\)\?PTXCONF_\)DOSFSTOOLS_DOSFSCK_MSDOS/\1DOSFSTOOLS_FSCK_FAT_MSDOS/
 s/^\(\(# \)\?PTXCONF_\)DOSFSTOOLS_DOSFSCK_VFAT/\1DOSFSTOOLS_FSCK_FAT_VFAT/
 s/^\(\(# \)\?PTXCONF_\)DOSFSTOOLS_DOSFSCK/\1DOSFSTOOLS_FSCK_FAT/
 s/^\(\(# \)\?PTXCONF_\)DOSFSTOOLS_DOSFSLABEL/\1DOSFSTOOLS_FATLABEL/
+
+#
+# from   : ptxdist-2017.07.0
+# to : ptxdist-2017.08.0
+# symbol : LIGHTTPD_MEMCACHE -> LIGHTTPD_MEMCACHED
+# reason : option renamed
+#
+s/^\(\(# \)\?PTXCONF_\)LIGHTTPD_MEMCACHE/\1LIGHTTPD_MEMCACHED/
-- 
2.1.4


___
ptxdist mailing list
ptxdist@pengutronix.de

[ptxdist] [PATCH v2 1/4] lighttpd: Ugprade from 1.4.39 to 1.4.45

2017-08-23 Thread Alexander Dahl
* webdav support was improved in 1.4.40, we switch on the additional
webdav related configure options, if webdav is selected
* auth framework was rewritten in 1.4.42, while all other auth backends
(krb5, ldap, mysql) are disabled in ptxdist by configure, the basic
file backend is active and another module has to be loaded for it

For removal of the runstatedir configure option see the discussion on
the proposed patch 1.4.39 -> 1.4.42 from October 2016.

Signed-off-by: Alexander Dahl 
---
 rules/lighttpd.make | 15 ++-
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/rules/lighttpd.make b/rules/lighttpd.make
index aa0849a..fd6e1cf 100644
--- a/rules/lighttpd.make
+++ b/rules/lighttpd.make
@@ -17,8 +17,8 @@ PACKAGES-$(PTXCONF_LIGHTTPD) += lighttpd
 #
 # Paths and names
 #
-LIGHTTPD_VERSION   := 1.4.39
-LIGHTTPD_MD5   := 63c7563be1c7a7a9819a51f07f1af8b2
+LIGHTTPD_VERSION   := 1.4.45
+LIGHTTPD_MD5   := a128e1eda76899ce3fd115efae5fe631
 LIGHTTPD   := lighttpd-$(LIGHTTPD_VERSION)
 LIGHTTPD_SUFFIX:= tar.xz
 LIGHTTPD_URL   := 
http://download.lighttpd.net/lighttpd/releases-1.4.x/$(LIGHTTPD).$(LIGHTTPD_SUFFIX)
@@ -36,27 +36,31 @@ LIGHTTPD_LICENSE:= BSD-3-Clause
 LIGHTTPD_CONF_TOOL := autoconf
 LIGHTTPD_CONF_OPT  := \
$(CROSS_AUTOCONF_USR) \
-   --runstatedir=/run \
--libdir=/usr/lib/lighttpd \
--$(call ptx/endis, PTXCONF_GLOBAL_LARGE_FILE)-lfs \
$(GLOBAL_IPV6_OPTION) \
--disable-mmap \
+   --enable-extra-warnings \
--without-libev \
--without-mysql \
--without-ldap \
--$(call ptx/wwo, PTXCONF_LIGHTTPD_ATTR)-attr \
--without-valgrind \
--without-libunwind \
+   --without-krb5 \
--$(call ptx/wwo, PTXCONF_LIGHTTPD_OPENSSL)-openssl \
-   --without-kerberos5 \
--$(call ptx/wwo, PTXCONF_LIGHTTPD_PCRE)-pcre \
--$(call ptx/wwo, PTXCONF_LIGHTTPD_ZLIB)-zlib \
--$(call ptx/wwo, PTXCONF_LIGHTTPD_BZ2LIB)-bzip2 \
--$(call ptx/wwo, PTXCONF_LIGHTTPD_FAM)-fam \
--$(call ptx/wwo, PTXCONF_LIGHTTPD_WEBDAV_PROPS)-webdav-props \
+   --$(call ptx/wwo, PTXCONF_LIGHTTPD_WEBDAV_PROPS)-libxml \
+   --$(call ptx/wwo, PTXCONF_LIGHTTPD_WEBDAV_PROPS)-sqlite \
--$(call ptx/wwo, PTXCONF_LIGHTTPD_WEBDAV_LOCKS)-webdav-locks \
+   --$(call ptx/wwo, PTXCONF_LIGHTTPD_WEBDAV_LOCKS)-uuid \
--without-gdbm \
-   --$(call ptx/wwo, PTXCONF_LIGHTTPD_MEMCACHE)-memcache \
+   --without-geoip \
+   --$(call ptx/wwo, PTXCONF_LIGHTTPD_MEMCACHE)-memcached \
--$(call ptx/wwo, PTXCONF_LIGHTTPD_LUA)-lua
 
 # 
@@ -68,6 +72,7 @@ LIGHTTPD_MODULES-$(PTXCONF_LIGHTTPD_MOD_ACCESS)   
+= mod_access
 LIGHTTPD_MODULES-$(PTXCONF_LIGHTTPD_MOD_ACCESSLOG) += mod_accesslog
 LIGHTTPD_MODULES-$(PTXCONF_LIGHTTPD_MOD_ALIAS) += mod_alias
 LIGHTTPD_MODULES-$(PTXCONF_LIGHTTPD_MOD_AUTH)  += mod_auth
+LIGHTTPD_MODULES-$(PTXCONF_LIGHTTPD_MOD_AUTH)  += mod_authn_file
 LIGHTTPD_MODULES-$(PTXCONF_LIGHTTPD_MOD_CML)   += mod_cml
 LIGHTTPD_MODULES-$(PTXCONF_LIGHTTPD_MOD_COMPRESS)  += mod_compress
 LIGHTTPD_MODULES-$(PTXCONF_LIGHTTPD_MOD_FASTCGI)   += mod_fastcgi
-- 
2.1.4


___
ptxdist mailing list
ptxdist@pengutronix.de

[ptxdist] [PATCH v2 4/4] lighttpd: Install mime.conf and remove hardcoded values

2017-08-23 Thread Alexander Dahl
As suggested on the mailing list back in late 2016 this removes the
hardcoded mimetype values from lighttpd.conf and installs mime.conf
provided by upstream instead. You can still have your own mime.conf by
putting it in projectroot/etc/lighttpd/conf.d of course.

Suggested-by: Clemens Gruber 
Suggested-by: Michael Olbrich 
Signed-off-by: Alexander Dahl 
---
v1 -> v2:
  * use world/install instead of what the outdated documentation says
---
 projectroot/etc/lighttpd/lighttpd.conf | 54 --
 rules/lighttpd.make| 12 
 2 files changed, 12 insertions(+), 54 deletions(-)

diff --git a/projectroot/etc/lighttpd/lighttpd.conf 
b/projectroot/etc/lighttpd/lighttpd.conf
index c6f1e64..fa2f60e 100644
--- a/projectroot/etc/lighttpd/lighttpd.conf
+++ b/projectroot/etc/lighttpd/lighttpd.conf
@@ -13,60 +13,6 @@ server.modules   = (
@MODULES@
 )
 
-# mimetype mapping
-mimetype.assign= (
-   ".pdf"  =>  "application/pdf",
-   ".sig"  =>  "application/pgp-signature",
-   ".spl"  =>  "application/futuresplash",
-   ".class"=>  "application/octet-stream",
-   ".ps"   =>  "application/postscript",
-   ".torrent"  =>  "application/x-bittorrent",
-   ".dvi"  =>  "application/x-dvi",
-   ".gz"   =>  "application/x-gzip",
-   ".pac"  =>  "application/x-ns-proxy-autoconfig",
-   ".swf"  =>  "application/x-shockwave-flash",
-   ".tar.gz"   =>  "application/x-tgz",
-   ".tgz"  =>  "application/x-tgz",
-   ".tar"  =>  "application/x-tar",
-   ".zip"  =>  "application/zip",
-   ".mp3"  =>  "audio/mpeg",
-   ".m3u"  =>  "audio/x-mpegurl",
-   ".wma"  =>  "audio/x-ms-wma",
-   ".wax"  =>  "audio/x-ms-wax",
-   ".ogg"  =>  "audio/x-wav",
-   ".wav"  =>  "audio/x-wav",
-   ".gif"  =>  "image/gif",
-   ".jpg"  =>  "image/jpeg",
-   ".jpeg" =>  "image/jpeg",
-   ".png"  =>  "image/png",
-   ".svg"  =>  "image/svg+xml",
-   ".xbm"  =>  "image/x-xbitmap",
-   ".xpm"  =>  "image/x-xpixmap",
-   ".xwd"  =>  "image/x-xwindowdump",
-   ".css"  =>  "text/css",
-   ".html" =>  "text/html",
-   ".htm"  =>  "text/html",
-   ".js"   =>  "text/javascript",
-   ".asc"  =>  "text/plain",
-   ".c"=>  "text/plain",
-   ".conf" =>  "text/plain",
-   ".text" =>  "text/plain",
-   ".txt"  =>  "text/plain",
-   ".dtd"  =>  "text/xml",
-   ".xml"  =>  "text/xml",
-   ".mpeg" =>  "video/mpeg",
-   ".mpg"  =>  "video/mpeg",
-   ".mov"  =>  "video/quicktime",
-   ".qt"   =>  "video/quicktime",
-   ".avi"  =>  "video/x-msvideo",
-   ".asf"  =>  "video/x-ms-asf",
-   ".asx"  =>  "video/x-ms-asf",
-   ".wmv"  =>  "video/x-ms-wmv",
-   ".bz2"  =>  "application/x-bzip",
-   ".tbz"  =>  "application/x-bzip-compressed-tar",
-   ".tar.bz2"  =>  "application/x-bzip-compressed-tar"
-)
-
 index-file.names = ( "index.html" )
 
 include "conf.d/*.conf"
diff --git a/rules/lighttpd.make b/rules/lighttpd.make
index 8b52267..5d1123e 100644
--- a/rules/lighttpd.make
+++ b/rules/lighttpd.make
@@ -64,6 +64,16 @@ LIGHTTPD_CONF_OPT:= \
--$(call ptx/wwo, PTXCONF_LIGHTTPD_LUA)-lua
 
 # 
+# Install
+# 
+$(STATEDIR)/lighttpd.install:
+   @$(call targetinfo)
+   @$(call world/install, LIGHTTPD)
+   @install -vD -m 0644 "$(LIGHTTPD_DIR)/doc/config/conf.d/mime.conf" \
+   "$(LIGHTTPD_PKGDIR)/etc/lighttpd/conf.d/mime.conf"
+   @$(call touch)
+
+# 
 # Target-Install
 # 
 
@@ -118,6 +128,8 @@ endif
@$(call install_copy, lighttpd, 0, 0, 0755, /etc/lighttpd/conf.d)
@$(call install_replace, lighttpd, /etc/lighttpd/lighttpd.conf, \
@MODULES@, $(LIGHTTPD_MODULE_STRING))
+   @$(call install_alternative, lighttpd, 0, 0, 0644, \
+   /etc/lighttpd/conf.d/mime.conf)
 
 ifdef PTXCONF_LIGHTTPD_MOD_FASTCGI_PHP
@$(call install_alternative, lighttpd, 0, 0, 0644, \
-- 
2.1.4


___
ptxdist mailing list
ptxdist

[ptxdist] [PATCH v2 3/4] lighttpd: Simplify additional config include

2017-08-23 Thread Alexander Dahl
Since version 1.4.40 lighttpd supports file globs for includes.

See announcement: https://www.lighttpd.net/2016/7/16/1.4.40/

Signed-off-by: Alexander Dahl 
---
 projectroot/etc/lighttpd/lighttpd.conf | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/projectroot/etc/lighttpd/lighttpd.conf 
b/projectroot/etc/lighttpd/lighttpd.conf
index 86048f0..c6f1e64 100644
--- a/projectroot/etc/lighttpd/lighttpd.conf
+++ b/projectroot/etc/lighttpd/lighttpd.conf
@@ -69,5 +69,4 @@ mimetype.assign   = (
 
 index-file.names = ( "index.html" )
 
-include_shell "[ \"$(ls -A conf.d/)\" ] && cat conf.d/*.conf"
-
+include "conf.d/*.conf"
-- 
2.1.4


___
ptxdist mailing list
ptxdist@pengutronix.de

[ptxdist] [PATCH v2 0/4] lighttpd: Update and suggestions from last year

2017-08-23 Thread Alexander Dahl
Hi,

in late 2016 there was a patch posted for upgrading lighttpd from
1.4.39 to a newer version. Nothing happened since then and we are
still on this old version. Meanwhile upstream is at 1.4.45 with some
new features and lots of fixes, including serious security fixes.

I took all the suggestions from the old thread and made a patch
series. The first is the upgrade only, the following cover suggestions
from the old thread and use a new feature from 1.4.40 for simplifying
the config file. You may take all of the patches, but I also would be
happy if just the upgrade makes it.

Please have a look and test, as you can read in the News section on
https://www.lighttpd.net/ quite some things changed, although I
suppose almost every config out there should still run.

I could test this by myself for a while now, some things changed
upstream, you may find my support request useful:

https://redmine.lighttpd.net/boards/2/topics/7520

Greets
Alex

Changelog:

v1 -> v2:
  * fix non default install stage for extra mime.conf installation

Alexander Dahl (4):
  lighttpd: Ugprade from 1.4.39 to 1.4.45
  lighttpd: Rename memcache option to memcached
  lighttpd: Simplify additional config include
  lighttpd: Install mime.conf and remove hardcoded values

 projectroot/etc/lighttpd/lighttpd.conf | 57 +-
 rules/lighttpd.in  |  6 ++--
 rules/lighttpd.make| 27 +---
 scripts/migrate/migrate_ptx|  8 +
 4 files changed, 34 insertions(+), 64 deletions(-)

-- 
2.1.4


___
ptxdist mailing list
ptxdist@pengutronix.de

Re: [ptxdist] [PATCH] qrencode: new package: library and tools for encoding QR codes

2017-08-23 Thread Michael Olbrich
On Fri, Aug 11, 2017 at 02:38:37PM +0200, Roland Hieber wrote:
> 
> 
> On 11.08.2017 12:44, Roland Hieber wrote:
> > Signed-off-by: Roland Hieber 
> > ---
> >   rules/qrencode.in   | 31 +
> >   rules/qrencode.make | 67 
> > +
> >   2 files changed, 98 insertions(+)
> >   create mode 100644 rules/qrencode.in
> >   create mode 100644 rules/qrencode.make
> > 
> > diff --git a/rules/qrencode.in b/rules/qrencode.in
> > new file mode 100644
> > index ..70308ba7
> > --- /dev/null
> > +++ b/rules/qrencode.in
> > @@ -0,0 +1,31 @@
> > +## SECTION=system_libraries
> 
> Hmmm, thinking about this, it could also fit into SECTION=multimedia_libs or
> multimedia_tools. Thoughts?

use multimedia_tools.

> > +
> > +menuconfig QRENCODE
> > +   tristate
> > +   prompt "qrencode  "
> > +   select LIBPNG   if QRENCODE_TOOLS
> > +   select LIBC_PTHREAD if QRENCODE_PTHREAD
> > +   help
> > + Libqrencode is a C library for encoding data in a QR Code symbol, a
> > + kind of 2D symbology that can be scanned by handy terminals such as a
> > + mobile phone with CCD.
> > +
> > +if QRENCODE
> > +
> > +config QRENCODE_TOOLS
> > +   bool
> > +   default y
> > +   prompt "build tools"
> > +   help
> > + Enable this option to build the qrencode tool to build QR codes from
> > + the command line.
> > +
> > +config QRENCODE_PTHREAD
> > +   bool
> > +   default y
> > +   prompt "make library thread-safe"

Is there a reason to make this optional? I'd just enable it
unconditionally.

Michael

> > +
> > +endif
> > +
> > +
> > +# vim: ft=kconfig ts=8 noet tw=80
> > diff --git a/rules/qrencode.make b/rules/qrencode.make
> > new file mode 100644
> > index ..bd4b5cd4
> > --- /dev/null
> > +++ b/rules/qrencode.make
> > @@ -0,0 +1,67 @@
> > +# -*-makefile-*-
> > +#
> > +# Copyright (C) 2017 by Roland Hieber 
> > +#
> > +# See CREDITS for details about who has contributed to this project.
> > +#
> > +# For further information about the PTXdist project and license conditions
> > +# see the README file.
> > +#
> > +
> > +#
> > +# We provide this package
> > +#
> > +PACKAGES-$(PTXCONF_QRENCODE) += qrencode
> > +
> > +#
> > +# Paths and names
> > +#
> > +QRENCODE_VERSION   := 3.4.4
> > +QRENCODE_MD5   := be545f3ce36ea8fbb58612d72c4222de
> > +QRENCODE   := qrencode-$(QRENCODE_VERSION)
> > +QRENCODE_SUFFIX:= tar.gz
> > +QRENCODE_URL   := 
> > https://fukuchi.org/works/qrencode/$(QRENCODE).$(QRENCODE_SUFFIX)
> > +QRENCODE_SOURCE:= $(SRCDIR)/$(QRENCODE).$(QRENCODE_SUFFIX)
> > +QRENCODE_DIR   := $(BUILDDIR)/$(QRENCODE)
> > +QRENCODE_LICENSE   := LGPL-2.1+
> > +
> > +# 
> > 
> > +# Prepare
> > +# 
> > 
> > +
> > +QRENCODE_CONF_TOOL := autoconf
> > +QRENCODE_CONF_OPT  := \
> > +   $(CROSS_AUTOCONF_USR) \
> > +   --$(call ptx/endis,PTXCONF_QRENCODE_PTHREAD)-thread-safety \
> > +   --disable-sdltest \
> > +   --disable-rpath \
> > +   --disable-gprof \
> > +   --disable-gcov \
> > +   --disable-mudflap \
> > +   --$(call ptx/wwo,PTXCONF_QRENCODE_TOOLS)-tools \
> > +   --without-tests
> > +
> > +# 
> > 
> > +# Target-Install
> > +# 
> > 
> > +
> > +$(STATEDIR)/qrencode.targetinstall:
> > +   @$(call targetinfo)
> > +
> > +   @$(call install_init, qrencode)
> > +   @$(call install_fixup, qrencode,PRIORITY,optional)
> > +   @$(call install_fixup, qrencode,SECTION,base)
> > +   @$(call install_fixup, qrencode,AUTHOR,"Roland Hieber 
> > ")
> > +   @$(call install_fixup, qrencode,DESCRIPTION,missing)
> > +
> > +   @$(call install_lib, qrencode, 0, 0, 0644, libqrencode)
> > +
> > +ifdef PTXCONF_QRENCODE_TOOLS
> > +   @$(call install_copy, qrencode, 0, 0, 0755, -, /usr/bin/qrencode)
> > +endif
> > +
> > +   @$(call install_finish, qrencode)
> > +
> > +   @$(call touch)
> > +
> > +# vim: ft=make ts=8 noet tw=80
> > 
> 
> -- 
> Pengutronix e.K.  | Roland Hieber   |
> Industrial Linux Solutions| http://www.pengutronix.de/  |
> Peiner Str. 6-8, 31137 Hildesheim | Phone: +49-5121-206917-5086 |
> Amtsgericht Hildesheim, HRA 2686  | Fax:   +49-5121-206917- |
> 
> ___
> ptxdist mailing list
> ptxdist@pengutronix.de

-- 
Pengutronix e.K.   | |
Industrial Linux Solutions | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0|
Amtsgericht Hildesheim, HRA 2686   | Fax:   +49-5121-206917- |

___
ptxdist mailing list
ptxdist@pe

Re: [ptxdist] [PATCH 4/4] lighttpd: Install mime.conf and remove hardcoded values

2017-08-23 Thread Michael Olbrich
On Fri, Aug 11, 2017 at 12:00:26PM +0200, Alexander Dahl wrote:
> Hi,
> 
> Am Freitag, 11. August 2017, 10:04:02 schrieb Alexander Dahl:
> > +   @$(call targetinfo)
> > +   @cd $(LIGHTTPD_DIR) && \
> > +   $(LIGHTTPD_PATH) $(LIGHTTPD_MAKE_ENV) \
> > +   $(MAKE) $(LIGHTTPD_INSTALL_OPT)
> > +   install -D -m 644 "$(LIGHTTPD_DIR)/doc/config/conf.d/mime.conf" \
> > +   "$(LIGHTTPD_PKGDIR)/etc/lighttpd/conf.d/mime.conf"
> > +   @$(call touch)
> 
> This does not work as expected. I took this from the 
> documentation/ref_manual.

This needs updating. :-/

> Removing the @ before cd I get this:
> 
> cd /home/adahl/Work/bsp/foo/platform-bar/build-target/lighttpd-1.4.45 && 
> \
>   \
> make 

This only works if the variables are actually set to something useful...

> Seems like those note in the documentation is misleading? When playing 
> with ptxdist print I get something for LIGHTTPD_DIR, which is defined in 
> rules/lighttpd.make and for LIGHTTPD_PKGDIR, which is probably defined 
> somewhere outside. LIGHTTPD_PATH, LIGHTTPD_MAKE_ENV, and 
> LIGHTTPD_INSTALL_OPT however are empty, so no `make install` is called 
> here.
> 
> I tried to find out how other rules do this, and could just find usb-
> modeswitch.make and qt4.make doing something like this:
> 
>   @$(call install, QT4)

This should be world/install too...

> or 
> 
>   @$(call world/install, USB_MODESWITCH)

This is correct.

> I assume this can be used to replace the failing three lines, but what's 
> the difference? This is not in the manual, is it? Some other packages 
> use $(call install, …) and yet other packages $(call world/install, …) 
> but none of those autoconf and @package@_INSTALL_OPT?

'install' should not be used. That's old compatibility stuff.
'world/install' uses @package@_INSTALL_OPT if set. If not, "install" is used
as make argument.

> If somebody points me to a solution, I'll send a v2.

Make sure 'world/install' is the first command. It will remove the pkgdir.

Michael

-- 
Pengutronix e.K.   | |
Industrial Linux Solutions | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0|
Amtsgericht Hildesheim, HRA 2686   | Fax:   +49-5121-206917- |

___
ptxdist mailing list
ptxdist@pengutronix.de