diff --git a/package/ctcgfw/cups-bjnp/Makefile b/package/ctcgfw/cups-bjnp/Makefile new file mode 100644 index 0000000000..0c8a592b4b --- /dev/null +++ b/package/ctcgfw/cups-bjnp/Makefile @@ -0,0 +1,48 @@ +# +# Copyright (C) 2010 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=cups-bjnp +PKG_VERSION:=2.0 +PKG_RELEASE:=1 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=@SF/cups-bjnp +PKG_MD5SUM:=8a337091b65abfdd70191129efefb9b3 + +PKG_BUILD_DEPENDS:=cups + +include $(INCLUDE_DIR)/package.mk + +define Package/cups-bjnp + SECTION:=net + CATEGORY:=Network + TITLE:=BJNP protocol backend for CUPS + URL:=http://sourceforge.net/projects/cups-bjnp/ + DEPENDS:=cups + SUBMENU:=Printing +endef + +define Package/cups-bjnp/description +CUPS backend for the canon printers using the proprietary USB over +IP BJNP protocol. This backend allows Cups to print over the network +to a Canon printer. It currently supports Cups 1.2 and Cups 1.3 and +is designed by reverse engineering. +endef + +CONFIGURE_ARGS += --with-cupsbackenddir=$(STAGING_DIR)/usr/include/cups + +TARGET_CFLAGS+=-Wl,-rpath-link=$(STAGING_DIR)/usr/lib + +define Package/cups-bjnp/install + $(INSTALL_DIR) $(1)/usr/lib/cups/backend + $(INSTALL_BIN) $(PKG_BUILD_DIR)/bjnp $(1)/usr/lib/cups/backend +endef + + +$(eval $(call BuildPackage,cups-bjnp)) diff --git a/package/ctcgfw/cups/Makefile b/package/ctcgfw/cups/Makefile new file mode 100644 index 0000000000..62df2e608e --- /dev/null +++ b/package/ctcgfw/cups/Makefile @@ -0,0 +1,321 @@ +# +# Copyright (C) 2006-2016 OpenWrt.org +# Copyright (C) 2016 lede-project.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=cups +PKG_VERSION:=2.1.4 +PKG_RELEASE:=1 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-source.tar.gz +PKG_SOURCE_URL:=http://www.cups.org/software/$(PKG_VERSION) +PKG_MD5SUM:=9f9bf6e3b9c20a3519b4dc409666d6e7 + +TARGET_LDFLAGS+=-Wl,-rpath-link=$(STAGING_DIR)/usr/lib + +include $(INCLUDE_DIR)/package.mk + +define Package/cups/Default + URL:=http://www.cups.org/ + SUBMENU:=Printing +endef + +define Package/cups +$(call Package/cups/Default) + SECTION:=net + CATEGORY:=Network + DEPENDS:=+libcups +libcupsmime +libcupscgi +libcupsppdc +libusb-1.0 + TITLE:=Common UNIX Printing System (daemon) +endef + +define Package/cups/description + Common UNIX Printing System (daemon) +endef + +define Package/cups/conffiles +/etc/cups/classes.conf +/etc/cups/cupsd.conf +/etc/cups/printers.conf +endef + +define Package/cups-bsd +$(call Package/cups/Default) + SECTION:=net + CATEGORY:=Network + DEPENDS:=+libcups + TITLE:=Common UNIX Printing System - BSD commands (old) +endef + +define Package/cups-bsd/description + Common UNIX Printing System - BSD commands (old) +endef + +define Package/cups-client +$(call Package/cups/Default) + SECTION:=net + CATEGORY:=Network + DEPENDS:=+libcups +libcupsimage +libcupsmime + TITLE:=Common UNIX Printing System - Client commands +endef + +define Package/cups-client/conffiles +/etc/cups/client.conf +endef + +define Package/cups-client/description + Common UNIX Printing System - Client commands +endef + +define Package/cups-filters +$(call Package/cups/Default) + SECTION:=net + CATEGORY:=Network + DEPENDS:=+libcupsimage + TITLE:=Common UNIX Printing System - Filter +endef + +define Package/cups-filters/description + Common UNIX Printing System - Filter +endef + +define Package/cups-ppdc +$(call Package/cups/Default) + SECTION:=net + CATEGORY:=Network + DEPENDS:=+libcupsppdc + TITLE:=Common UNIX Printing System - PPDC utils +endef + +define Package/cups-ppdc/description + Common UNIX Printing System - PPDC utils +endef + +define Package/libcups +$(call Package/cups/Default) + SECTION:=libs + CATEGORY:=Libraries + DEPENDS:=+zlib +libpthread +libpng +libjpeg + TITLE:=Common UNIX Printing System - Core library +endef + +define Package/libcups/description + Common UNIX Printing System - Core library +endef + +define Package/libcupscgi +$(call Package/cups/Default) + SECTION:=libs + CATEGORY:=Libraries + DEPENDS:=+libcups + TITLE:=Common UNIX Printing System - CGI library +endef + +define Package/libcupscgi/description + Common UNIX Printing System - CGI library +endef + +define Package/libcupsimage +$(call Package/cups/Default) + SECTION:=libs + CATEGORY:=Libraries + DEPENDS:=+libcups + TITLE:=Common UNIX Printing System - Image library +endef + +define Package/libcupsimage/description + Common UNIX Printing System - Image library +endef + +define Package/libcupsmime +$(call Package/cups/Default) + SECTION:=libs + CATEGORY:=Libraries + DEPENDS:=+libcups + TITLE:=Common UNIX Printing System - MIME library +endef + +define Package/libcupsmime/description + Common UNIX Printing System - MIME library +endef + +define Package/libcupsppdc +$(call Package/cups/Default) + SECTION:=libs + CATEGORY:=Libraries + DEPENDS:=+libcups +libstdcpp + TITLE:=Common UNIX Printing System - PPDC library +endef + +define Package/libcupsppdc/description + Common UNIX Printing System - PPDC library +endef + +define Build/Configure + $(call Build/Configure/Default, \ + --with-cups-user="nobody" \ + --with-cups-group="nogroup" \ + --with-system-groups="root" \ + --with-pdftops="none" \ + --without-perl \ + --without-python \ + --without-php \ + --enable-default-shared \ + --enable-shared \ + --enable-image \ + --enable-libusb \ + --disable-acl \ + --disable-dnssd \ + --disable-dbus \ + --disable-avahi \ + --disable-launchd \ + --disable-ldap \ + --disable-pam \ + --disable-slp \ + --disable-gnutls \ + --disable-openssl \ + --disable-cdsassl \ + --disable-ssl \ + --disable-gssapi \ + --disable-tiff, \ + UNAME="Linux" \ + LIBS="$(TARGET_LDFLAGS) -lz -lpng -ljpeg" \ + ) +endef + +define Build/Compile + $(MAKE) -C $(PKG_BUILD_DIR) \ + $(TARGET_CONFIGURE_OPTS) \ + DSTROOT="$(PKG_INSTALL_DIR)" \ + STRIP="/bin/true" \ + all install +endef + +define Package/cups/install + rm -rf $(1)/etc/cups + $(INSTALL_DIR) $(1)/etc/cups + $(CP) $(PKG_INSTALL_DIR)/etc/cups/* $(1)/etc/cups/ + rm -rf $(1)/etc/cups/certs + ln -sf /tmp $(1)/etc/cups/certs + rm -f $(1)/usr/bin/cups-config + $(INSTALL_DIR) $(1)/usr/lib/cups + $(CP) $(PKG_INSTALL_DIR)/usr/lib/cups/backend $(1)/usr/lib/cups + $(CP) $(PKG_INSTALL_DIR)/usr/lib/cups/cgi-bin $(1)/usr/lib/cups + $(CP) $(PKG_INSTALL_DIR)/usr/lib/cups/daemon $(1)/usr/lib/cups + $(CP) $(PKG_INSTALL_DIR)/usr/lib/cups/driver $(1)/usr/lib/cups + $(CP) $(PKG_INSTALL_DIR)/usr/lib/cups/monitor $(1)/usr/lib/cups + $(INSTALL_DIR) $(1)/usr/lib/cups/filter + $(CP) $(PKG_INSTALL_DIR)/usr/lib/cups/filter/{commandtops,pstops} \ + $(PKG_INSTALL_DIR)/usr/lib/cups/filter/gziptoany \ + $(1)/usr/lib/cups/filter + $(INSTALL_DIR) $(1)/usr/share/cups/templates + $(CP) $(PKG_INSTALL_DIR)/usr/share/cups/templates/*.tmpl \ + $(1)/usr/share/cups/templates/ + $(INSTALL_DIR) $(1)/usr/share/cups/mime + $(CP) $(PKG_INSTALL_DIR)/usr/share/cups/mime/* $(1)/usr/share/cups/mime/ + ### Do install docs: cups web interface relies on them + $(INSTALL_DIR) $(1)/usr/share/doc/cups + $(CP) $(PKG_INSTALL_DIR)/usr/share/doc/cups/*.*html \ + $(1)/usr/share/doc/cups/ + $(CP) $(PKG_INSTALL_DIR)/usr/share/doc/cups/*.css \ + $(1)/usr/share/doc/cups/ + $(CP) $(PKG_INSTALL_DIR)/usr/share/doc/cups/*.txt \ + $(1)/usr/share/doc/cups/ + $(CP) $(PKG_INSTALL_DIR)/usr/share/doc/cups/images \ + $(1)/usr/share/doc/cups/ + $(INSTALL_DIR) $(1)/usr/sbin + # overwrite default config with our own + $(CP) ./files/etc/cups/* $(1)/etc/cups/ + # install initscript with priority 60 + $(INSTALL_DIR) $(1)/etc/init.d + $(INSTALL_BIN) ./files/cupsd.init $(1)/etc/init.d/cupsd + $(INSTALL_BIN) \ + $(PKG_INSTALL_DIR)/usr/sbin/{cupsctl,cupsd} \ + $(1)/usr/sbin/ + # needed for cups to find usb printers per http://wiki.openwrt.org/doc/howto/cups.server + chmod 700 $(1)/usr/lib/cups/backend/usb +endef + +define Package/cups-bsd/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/{lprm,lpq,lpr} $(1)/usr/bin/ + $(INSTALL_DIR) $(1)/usr/sbin + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/lpc $(1)/usr/sbin/ +endef + +define Package/cups-client/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) \ + $(PKG_INSTALL_DIR)/usr/bin/{lp,cancel,cupstestppd,cupstestdsc} \ + $(PKG_INSTALL_DIR)/usr/bin/{ipptool,lpoptions,lpstat} \ + $(1)/usr/bin/ + $(INSTALL_DIR) $(1)/usr/sbin + $(INSTALL_BIN) \ + $(PKG_INSTALL_DIR)/usr/sbin/{cupsaccept,cupsaddsmb,cupsfilter} \ + $(PKG_INSTALL_DIR)/usr/sbin/{lpadmin,lpinfo,lpmove} \ + $(1)/usr/sbin/ + (cd $(1)/usr/sbin; ln -sf cupsaccept accept; ln -sf cupsaccept cupsenable; ln -sf cupsaccept cupsdisable; ln -sf cupsaccept reject; ln -sf cupsaccept cupsreject;) +endef + +define Package/cups-filters/install + $(INSTALL_DIR) $(1)/usr/lib/cups/filter + $(CP) $(PKG_INSTALL_DIR)/usr/lib/cups/filter/{commandtops,gziptoany,pstops,rastertoepson,rastertohp,rastertolabel,rastertopwg} \ + $(1)/usr/lib/cups/filter + (cd $(1)/usr/lib/cups/filter; ln -sf rastertolabel rastertodymo;) +endef + +define Package/cups-ppdc/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) \ + $(PKG_INSTALL_DIR)/usr/bin/{ppdc,ppdhtml,ppdi,ppdmerge,ppdpo} \ + $(1)/usr/bin/ +endef + +define Package/libcups/install + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libcups.so* $(1)/usr/lib/ +endef + +define Package/libcupscgi/install + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libcupscgi.so* $(1)/usr/lib/ +endef + +define Package/libcupsimage/install + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libcupsimage.so* $(1)/usr/lib/ +endef + +define Package/libcupsmime/install + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libcupsmime.so* $(1)/usr/lib/ +endef + +define Package/libcupsppdc/install + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libcupsppdc.so* $(1)/usr/lib/ +endef + +define Build/InstallDev + $(INSTALL_DIR) $(2)/bin + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/cups-config $(2)/bin/ + $(INSTALL_DIR) $(1)/usr/include + $(CP) $(PKG_INSTALL_DIR)/usr/include/cups $(1)/usr/include/ + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libcups*.so* $(1)/usr/lib/ +endef + +$(eval $(call BuildPackage,cups)) +$(eval $(call BuildPackage,libcups)) +$(eval $(call BuildPackage,libcupscgi)) +$(eval $(call BuildPackage,libcupsimage)) +$(eval $(call BuildPackage,libcupsmime)) +$(eval $(call BuildPackage,libcupsppdc)) +$(eval $(call BuildPackage,cups-bsd)) +$(eval $(call BuildPackage,cups-client)) +$(eval $(call BuildPackage,cups-filters)) +$(eval $(call BuildPackage,cups-ppdc)) diff --git a/package/ctcgfw/cups/files/cupsd.init b/package/ctcgfw/cups/files/cupsd.init new file mode 100755 index 0000000000..e5f00da9a4 --- /dev/null +++ b/package/ctcgfw/cups/files/cupsd.init @@ -0,0 +1,19 @@ +#!/bin/sh /etc/rc.common +# Copyright (C) 2006-2011 OpenWrt.org + +START=50 + +start() { + mkdir -m 0755 -p /var/cache/cups + mkdir -m 0755 -p /var/cups + mkdir -m 0755 -p /var/spool/cups/tmp + service_start /usr/sbin/cupsd +} + +stop() { + service_stop /usr/sbin/cupsd +} + +reload() { + service_reload /usr/sbin/cupsd +} diff --git a/package/ctcgfw/cups/files/etc/cups/classes.conf b/package/ctcgfw/cups/files/etc/cups/classes.conf new file mode 100644 index 0000000000..15afda75a2 --- /dev/null +++ b/package/ctcgfw/cups/files/etc/cups/classes.conf @@ -0,0 +1,7 @@ +######################################################################## +# # +# This is a sample class configuration file. This file is included # +# from the main configuration file (cups.conf) and lists all of the # +# printer classes known to the system. # +# # +######################################################################## diff --git a/package/ctcgfw/cups/files/etc/cups/client.conf b/package/ctcgfw/cups/files/etc/cups/client.conf new file mode 100644 index 0000000000..c8d9f910ed --- /dev/null +++ b/package/ctcgfw/cups/files/etc/cups/client.conf @@ -0,0 +1,9 @@ +######################################################################## +# # +# This is the CUPS client configuration file. This file is used to # +# define client-specific parameters, such as the default server or # +# default encryption settings. # +# # +######################################################################## + +Encryption Never diff --git a/package/ctcgfw/cups/files/etc/cups/cupsd.conf b/package/ctcgfw/cups/files/etc/cups/cupsd.conf new file mode 100644 index 0000000000..48c4188386 --- /dev/null +++ b/package/ctcgfw/cups/files/etc/cups/cupsd.conf @@ -0,0 +1,58 @@ +######################################################################## +# # +# This is the CUPS configuration file. If you are familiar with # +# Apache or any of the other popular web servers, we've followed the # +# same format. Any configuration variable used here has the same # +# semantics as the corresponding variable in Apache. If we need # +# different functionality then a different name is used to avoid # +# confusion... # +# # +######################################################################## + + +AccessLog syslog +ErrorLog syslog +LogLevel info +PageLog syslog +PreserveJobHistory No +PreserveJobFiles No +AutoPurgeJobs Yes +MaxJobs 25 +MaxPrinterHistory 10 +#Printcap /etc/printcap +#PrintcapFormat BSD +RequestRoot /var/cups +#RemoteRoot remroot +#User nobody +#Group nogroup +# root permissions required to make cups work with the usb backend +User root +Group root +RIPCache auto +TempDir /var/cups +Port 631 +HostNameLookups On +KeepAlive On +# No: "BrowseOrder" "BrowseAllow" "BrowseRemoteProtocols" +Browsing Yes +BrowsingWebIF Yes +BrowseLocalProtocols DNSSD +DefaultShared Yes +WebInterface no +Listen /var/run/cups/cups.sock + +ServerAlias * + + +Order Allow,Deny +Allow From 127.0.0.1 +Allow From 192.168.1.0/24 + + + +AuthType Basic +AuthClass System +Order Allow,Deny +Allow From 127.0.0.1 +Allow From 192.168.1.0/24 + diff --git a/package/ctcgfw/cups/files/etc/cups/printers.conf b/package/ctcgfw/cups/files/etc/cups/printers.conf new file mode 100644 index 0000000000..88bba1b133 --- /dev/null +++ b/package/ctcgfw/cups/files/etc/cups/printers.conf @@ -0,0 +1,23 @@ + +Info USB Printer +Location +DeviceURI usb:/dev/usb/lp0 +State Idle +Accepting Yes +JobSheets none none +QuotaPeriod 0 +PageLimit 0 +KLimit 0 + + + +Info Parallel Port Printer +Location +DeviceURI parallel:/dev/printers/0 +State Idle +Accepting Yes +JobSheets none none +QuotaPeriod 0 +PageLimit 0 +KLimit 0 + diff --git a/package/ctcgfw/cups/patches/100-target.patch b/package/ctcgfw/cups/patches/100-target.patch new file mode 100644 index 0000000000..571cce1a69 --- /dev/null +++ b/package/ctcgfw/cups/patches/100-target.patch @@ -0,0 +1,11 @@ +--- a/configure ++++ b/configure +@@ -5896,7 +5896,7 @@ fi + + case "$COMPONENTS" in + all) +- BUILDDIRS="filter backend berkeley cgi-bin monitor notifier ppdc scheduler systemv conf data desktop locale man doc examples templates" ++ BUILDDIRS="filter backend berkeley cgi-bin monitor ppdc scheduler systemv conf data desktop locale doc examples templates" + ;; + + core) diff --git a/package/ctcgfw/cups/patches/140-uname.patch b/package/ctcgfw/cups/patches/140-uname.patch new file mode 100644 index 0000000000..3261de6187 --- /dev/null +++ b/package/ctcgfw/cups/patches/140-uname.patch @@ -0,0 +1,11 @@ +--- a/configure ++++ b/configure +@@ -1966,7 +1966,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + +-uname=`uname` ++uname=${UNAME:-`uname`} + uversion=`uname -r | sed -e '1,$s/^[^0-9]*\([0-9]*\)\.\([0-9]*\).*/\1\2/'` + uarch=`uname -m` + diff --git a/package/ctcgfw/cups/patches/150-64bit_host_fix.patch b/package/ctcgfw/cups/patches/150-64bit_host_fix.patch new file mode 100644 index 0000000000..db46c44268 --- /dev/null +++ b/package/ctcgfw/cups/patches/150-64bit_host_fix.patch @@ -0,0 +1,33 @@ +--- a/config-scripts/cups-directories.m4 ++++ b/config-scripts/cups-directories.m4 +@@ -104,7 +104,7 @@ if test "$libdir" = "\${exec_prefix}/lib + case "$uname" in + Linux*) + if test -d /usr/lib64 -a ! -d /usr/lib64/fakeroot; then +- libdir="$exec_prefix/lib64" ++ libdir="$exec_prefix/lib" + fi + ;; + esac +--- a/configure ++++ b/configure +@@ -5998,7 +5998,7 @@ if test "$libdir" = "\${exec_prefix}/lib + case "$uname" in + Linux*) + if test -d /usr/lib64 -a ! -d /usr/lib64/fakeroot; then +- libdir="$exec_prefix/lib64" ++ libdir="$exec_prefix/lib" + fi + ;; + esac +--- a/cups-config.in ++++ b/cups-config.in +@@ -50,7 +50,7 @@ else + CFLAGS="$CFLAGS -I$includedir" + fi + +- if test $libdir != /usr/lib -a $libdir != /usr/lib32 -a $libdir != /usr/lib64; then ++ if test $libdir != /usr/lib -a $libdir != /usr/lib -a $libdir != /usr/lib; then + LDFLAGS="$LDFLAGS -L$libdir" + fi + fi diff --git a/package/ctcgfw/cups/patches/160-ppdc.patch b/package/ctcgfw/cups/patches/160-ppdc.patch new file mode 100644 index 0000000000..b92780a10b --- /dev/null +++ b/package/ctcgfw/cups/patches/160-ppdc.patch @@ -0,0 +1,17 @@ +--- a/ppdc/Makefile ++++ b/ppdc/Makefile +@@ -238,13 +238,7 @@ framedhelp: + + genstrings: genstrings.o libcupsppdc.a ../cups/$(LIBCUPSSTATIC) \ + sample.drv ../data/media.defs +- echo Linking $@... +- $(CXX) $(ARCHFLAGS) $(LDFLAGS) -o genstrings genstrings.o \ +- libcupsppdc.a ../cups/$(LIBCUPSSTATIC) $(LIBGSSAPI) $(SSLLIBS) \ +- $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) +- echo Generating localization strings... +- ./genstrings >sample.c +- ++ echo Not Linking $@... + + # + # ppdc, the PPD compiler.