Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F132580209
D32314.id96457.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
8 KB
Referenced Files
None
Subscribers
None
D32314.id96457.diff
View Options
diff --git a/graphics/Makefile b/graphics/Makefile
--- a/graphics/Makefile
+++ b/graphics/Makefile
@@ -43,6 +43,7 @@
SUBDIR += acidwarp
SUBDIR += acidwarp-sdl
SUBDIR += agg
+ SUBDIR += airsaned
SUBDIR += akira
SUBDIR += alembic
SUBDIR += aloadimage
diff --git a/graphics/airsaned/Makefile b/graphics/airsaned/Makefile
new file mode 100644
--- /dev/null
+++ b/graphics/airsaned/Makefile
@@ -0,0 +1,32 @@
+PORTNAME= airsaned
+DISTVERSIONPREFIX= v
+DISTVERSION= 0.3.2-50
+DISTVERSIONSUFFIX= -gdeab313
+CATEGORIES= graphics
+
+MAINTAINER= fbsd@opal.com
+COMMENT= Apple AirScan compatible SANE web frontend
+
+LICENSE= GPLv3
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+LIB_DEPENDS= libavahi-client.so:net/avahi-app \
+ libpng.so:graphics/png \
+ libsane.so:graphics/sane-backends
+
+USES= cmake compiler:c++11-lib jpeg localbase:ldflags
+USE_GITHUB= yes
+USE_RC_SUBR= ${PORTNAME}
+
+GH_ACCOUNT= SimulPiscator
+GH_PROJECT= AirSane
+
+post-patch:
+ @${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|g' \
+ ${PATCH_WRKSRC}/server/server.cpp
+
+post-install:
+ @${MV} ${STAGEDIR}${PREFIX}/etc/airsane/ignore.conf ${STAGEDIR}${PREFIX}/etc/airsane/ignore.conf.sample
+ @${MV} ${STAGEDIR}${PREFIX}/etc/airsane/options.conf ${STAGEDIR}${PREFIX}/etc/airsane/options.conf.sample
+
+.include <bsd.port.mk>
diff --git a/graphics/airsaned/distinfo b/graphics/airsaned/distinfo
new file mode 100644
--- /dev/null
+++ b/graphics/airsaned/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1633432825
+SHA256 (SimulPiscator-AirSane-v0.3.2-50-gdeab313_GH0.tar.gz) = a9df4ed9de8f59f07fe9d491bf9eb96c8168001ba0025b96bf97c39ac49e35e9
+SIZE (SimulPiscator-AirSane-v0.3.2-50-gdeab313_GH0.tar.gz) = 115706
diff --git a/graphics/airsaned/files/airsaned.in b/graphics/airsaned/files/airsaned.in
new file mode 100644
--- /dev/null
+++ b/graphics/airsaned/files/airsaned.in
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+# PROVIDE: airsaned
+# REQUIRE: LOGIN
+# KEYWORD: shutdown
+#
+# Add the following line to /etc/rc.conf[.local] to enable airsaned:
+# airsaned_enable="YES"
+
+. /etc/rc.subr
+
+name=airsaned
+rcvar=airsaned_enable
+
+load_rc_config airsane
+
+: ${airsaned_enable:="NO"}
+: ${airsaned_args:=""}
+
+command="%%PREFIX%%/sbin/${name}"
+command_args="${airsaned_args} &"
+sig_stop="KILL"
+
+run_rc_command "$1"
diff --git a/graphics/airsaned/files/patch-CMakeLists.txt b/graphics/airsaned/files/patch-CMakeLists.txt
new file mode 100644
--- /dev/null
+++ b/graphics/airsaned/files/patch-CMakeLists.txt
@@ -0,0 +1,71 @@
+--- CMakeLists.txt.orig 2021-09-18 16:22:32 UTC
++++ CMakeLists.txt
+@@ -20,6 +20,7 @@ endif()
+
+ set(THREADS_PREFER_PTHREAD_FLAG ON)
+ find_package(Threads REQUIRED)
++include(GNUInstallDirs)
+
+ include_directories(.)
+ if(APPLE)
+@@ -66,6 +67,13 @@ add_executable(${PROJECT_NAME}
+ zeroconf/hotplugnotifier.cpp
+ ${ZEROCONF_FILES}
+ )
++
++if(CMAKE_SYSTEM_NAME STREQUAL FreeBSD)
++ set(USB_LIBRARY usb)
++else()
++ set(USB_LIBRARY usb-1.0)
++endif()
++
+ target_link_libraries(
+ ${PROJECT_NAME}
+ Threads::Threads
+@@ -73,7 +81,7 @@ target_link_libraries(
+ jpeg
+ png
+ ${ZEROCONF_LIBS}
+- usb-1.0
++ ${USB_LIBRARY}
+ )
+
+ if(APPLE)
+@@ -105,8 +113,10 @@ install(CODE "
+ else()
+
+ install(TARGETS ${PROJECT_NAME}
+- RUNTIME DESTINATION bin
++ RUNTIME DESTINATION ${BINDIR}
+ )
++
++if(CMAKE_SYSTEM_NAME STREQUAL Linux)
+ install(FILES systemd/airsaned.service
+ DESTINATION /lib/systemd/system
+ )
+@@ -114,21 +124,9 @@ install(FILES systemd/airsaned.default
+ DESTINATION /etc/default
+ RENAME airsane
+ )
++endif()
+
+-install(CODE "
+- if(NOT EXISTS /etc/airsane/ignore.conf)
+- file(INSTALL ${CMAKE_SOURCE_DIR}/etc/ignore.conf DESTINATION /etc/airsane)
+- endif()
+-")
+-install(CODE "
+- if(NOT EXISTS /etc/airsane/options.conf)
+- file(INSTALL ${CMAKE_SOURCE_DIR}/etc/options.conf DESTINATION /etc/airsane)
+- endif()
+-")
+-install(CODE "
+- if(NOT EXISTS /etc/airsane/Gnome-scanner.png)
+- file(INSTALL ${CMAKE_SOURCE_DIR}/etc/Gnome-scanner.png DESTINATION /etc/airsane)
+- endif()
+-")
+-
++install(FILES etc/ignore.conf etc/options.conf etc/Gnome-scanner.png
++ DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/airsane
++)
+ endif()
diff --git a/graphics/airsaned/files/patch-imageformats-pngencoder.cpp b/graphics/airsaned/files/patch-imageformats-pngencoder.cpp
new file mode 100644
--- /dev/null
+++ b/graphics/airsaned/files/patch-imageformats-pngencoder.cpp
@@ -0,0 +1,20 @@
+--- imageformats/pngencoder.cpp.orig 2021-10-05 12:35:03 UTC
++++ imageformats/pngencoder.cpp
+@@ -17,11 +17,17 @@ along with this program. If not, see <http://www.gnu.
+ */
+
+ #include "pngencoder.h"
++#ifdef __FreeBSD__
++#include <png.h>
++#else
+ #include <libpng16/png.h>
++#endif
+ #include <stdexcept>
+ #include <vector>
+ #if __APPLE__
+ #include <machine/endian.h>
++#elif __FreeBSD__
++#include <sys/endian.h>
+ #else
+ #include <endian.h>
+ #endif
diff --git a/graphics/airsaned/files/patch-server-server.cpp b/graphics/airsaned/files/patch-server-server.cpp
new file mode 100644
--- /dev/null
+++ b/graphics/airsaned/files/patch-server-server.cpp
@@ -0,0 +1,16 @@
+--- server/server.cpp.orig 2021-10-05 17:07:11 UTC
++++ server/server.cpp
+@@ -103,11 +103,11 @@ Server::Server(int argc, char** argv)
+ "ignore SANE network scanners",
+ localonly },
+ { "options-file",
+- "/etc/airsane/options.conf",
++ "%%PREFIX%%/etc/airsane/options.conf",
+ "location of device options file",
+ optionsfile },
+ { "ignore-list",
+- "/etc/airsane/ignore.conf",
++ "%%PREFIX%%/etc/airsane/ignore.conf",
+ "location of device ignore list",
+ ignorelist },
+ { "debug", "false", "log debug information to stderr", debug },
diff --git a/graphics/airsaned/files/patch-web-httpserver.cpp b/graphics/airsaned/files/patch-web-httpserver.cpp
new file mode 100644
--- /dev/null
+++ b/graphics/airsaned/files/patch-web-httpserver.cpp
@@ -0,0 +1,12 @@
+--- web/httpserver.cpp.orig 2021-10-05 12:35:03 UTC
++++ web/httpserver.cpp
+@@ -25,6 +25,9 @@ along with this program. If not, see <http://www.gnu.
+ #include <thread>
+
+ #include <arpa/inet.h>
++#ifdef __FreeBSD__
++#include <netinet/in.h>
++#endif
+ #include <ifaddrs.h>
+ #include <net/if.h>
+ #include <netdb.h>
diff --git a/graphics/airsaned/files/patch-zeroconf-hotplugnotifier.cpp b/graphics/airsaned/files/patch-zeroconf-hotplugnotifier.cpp
new file mode 100644
--- /dev/null
+++ b/graphics/airsaned/files/patch-zeroconf-hotplugnotifier.cpp
@@ -0,0 +1,14 @@
+--- zeroconf/hotplugnotifier.cpp.orig 2021-10-05 12:35:03 UTC
++++ zeroconf/hotplugnotifier.cpp
+@@ -20,7 +20,11 @@ along with this program. If not, see <http://www.gnu.
+
+ #include <atomic>
+ #include <csignal>
++#ifdef __FreeBSD__
++#include <libusb.h>
++#else
+ #include <libusb-1.0/libusb.h>
++#endif
+ #include <pthread.h>
+ #include <thread>
+
diff --git a/graphics/airsaned/pkg-descr b/graphics/airsaned/pkg-descr
new file mode 100644
--- /dev/null
+++ b/graphics/airsaned/pkg-descr
@@ -0,0 +1,21 @@
+A SANE WebScan frontend that supports Apple's AirScan protocol.
+Scanners are detected automatically, and published through mDNS.
+Though images may be acquired and transferred in JPEG, PNG, and
+PDF/raster format through a simple web interface, AirSane's intended
+purpose is to be used with AirScan/eSCL clients such as Apple's
+Image Capture.
+
+Images are encoded on-the-fly during acquisition, keeping memory/storage
+demands low. Thus, AirSane will run fine on a Raspberry Pi or similar
+device.
+
+AirSane has been developed by reverse-engineering the communication
+protocol implemented in Apple's AirScanScanner client (macos 10.12.6,
+/System/Library/Image Capture/Devices/AirScanScanner.app).
+
+Authentication and secure communication are not supported.
+
+If you are looking for a powerful SANE web frontend, AirSane may
+not be for you. You may be interested in phpSANE instead.
+
+WWW: https://github.com/SimulPiscator/AirSane
diff --git a/graphics/airsaned/pkg-plist b/graphics/airsaned/pkg-plist
new file mode 100644
--- /dev/null
+++ b/graphics/airsaned/pkg-plist
@@ -0,0 +1,4 @@
+bin/airsaned
+etc/airsane/Gnome-scanner.png
+@sample etc/airsane/ignore.conf.sample
+@sample etc/airsane/options.conf.sample
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Oct 19, 3:42 AM (12 h, 21 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
23908651
Default Alt Text
D32314.id96457.diff (8 KB)
Attached To
Mode
D32314: graphics/airsaned: New port, Apple AirScan compatible SANE web frontend
Attached
Detach File
Event Timeline
Log In to Comment