Date: Sun, 17 Mar 2019 13:28:57 +0000 (UTC) From: Kurt Jaeger <pi@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r496060 - in head/net: . onedrive onedrive/files Message-ID: <201903171328.x2HDSvxp072573@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: pi Date: Sun Mar 17 13:28:57 2019 New Revision: 496060 URL: https://svnweb.freebsd.org/changeset/ports/496060 Log: New port: net/onedrive: Microsoft OneDrive client A complete tool to interact with OneDrive on Linux. Built following the UNIX philosophy. Features: State caching Real-Time file monitoring with Inotify Resumable uploads Support OneDrive for Business (part of Office 365) Shared folders (not Business) What's missing: While local changes are uploaded right away, remote changes are delayed No GUI WWW: https://github.com/skilion/onedrive PR: 236573 Submitted by: Hiroo Ono <hiroo.ono+freebsd@gmail.com> Added: head/net/onedrive/ head/net/onedrive/Makefile (contents, props changed) head/net/onedrive/distinfo (contents, props changed) head/net/onedrive/files/ head/net/onedrive/files/freebsd_inotify.d (contents, props changed) head/net/onedrive/files/patch-Makefile (contents, props changed) head/net/onedrive/files/patch-src_monitor.d (contents, props changed) head/net/onedrive/files/version (contents, props changed) head/net/onedrive/pkg-descr (contents, props changed) head/net/onedrive/pkg-plist (contents, props changed) Modified: head/net/Makefile Modified: head/net/Makefile ============================================================================== --- head/net/Makefile Sun Mar 17 13:14:52 2019 (r496059) +++ head/net/Makefile Sun Mar 17 13:28:57 2019 (r496060) @@ -545,6 +545,7 @@ SUBDIR += ocserv SUBDIR += olsrd SUBDIR += omnitty + SUBDIR += onedrive SUBDIR += onenetd SUBDIR += onioncat SUBDIR += opal Added: head/net/onedrive/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/net/onedrive/Makefile Sun Mar 17 13:28:57 2019 (r496060) @@ -0,0 +1,45 @@ +# $FreeBSD$ + +PORTNAME= onedrive +DISTVERSIONPREFIX= v +DISTVERSION= 1.1.3 +CATEGORIES= net + +MAINTAINER= hiroo.ono+freebsd@gmail.com +COMMENT= Microsoft OneDrive client + +LICENSE= GPLv3 + +BUILD_DEPENDS= ldmd2:lang/ldc +LIB_DEPENDS= libcurl.so:ftp/curl \ + libinotify.so:devel/libinotify + +USES= sqlite +USE_GITHUB= yes +GH_ACCOUNT= skilion + +OPTIONS_DEFAULT= LDC +OPTIONS_SINGLE= DLANG +OPTIONS_SINGLE_DLANG= DMD1 DMD2 LDC + +DMD1_DESC= Use lang/dmd1 as D compiler +DMD2_DESC= Use lang/dmd2 as D compiler +LDC_DESC= Use lang/ldc as D compiler + +DMD1_MAKE_ARGS= DC=dmd1 +DMD2_MAKE_ARGS= DC=dmd +LDC_MAKE_ARGS= DC=ldmd2 + +.include <bsd.port.pre.mk> + +post-extract: + ${CP} ${FILESDIR}/freebsd_inotify.d ${WRKSRC}/src + ${CP} ${FILESDIR}/version ${WRKSRC} + +do-install: + ${INSTALL_PROGRAM} ${WRKSRC}/onedrive ${STAGEDIR}${PREFIX}/bin + ${MKDIR} ${STAGEDIR}${EXAMPLESDIR} ${STAGEDIR}${DOCSDIR} + ${INSTALL_DATA} ${WRKSRC}/config ${STAGEDIR}${EXAMPLESDIR} + ${INSTALL_DATA} ${WRKSRC}/README.md ${STAGEDIR}${DOCSDIR} + +.include <bsd.port.post.mk> Added: head/net/onedrive/distinfo ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/net/onedrive/distinfo Sun Mar 17 13:28:57 2019 (r496060) @@ -0,0 +1,3 @@ +TIMESTAMP = 1552643961 +SHA256 (skilion-onedrive-v1.1.3_GH0.tar.gz) = fb12235a73919b3374b8f27785b834a690fba1c6e70c6e6f1f5da3e51eb471a0 +SIZE (skilion-onedrive-v1.1.3_GH0.tar.gz) = 35281 Added: head/net/onedrive/files/freebsd_inotify.d ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/net/onedrive/files/freebsd_inotify.d Sun Mar 17 13:28:57 2019 (r496060) @@ -0,0 +1,67 @@ +/** + * D header file for libinotify (incomplete) + */ + +module freebsd_inotify; + +import core.stdc.stdint; + +struct inotify_event +{ + int wd; /* Watch descriptor. */ + uint32_t mask; /* Watch mask. */ + uint32_t cookie; /* Cookie to synchronize two events. */ + uint32_t len; /* Length (including NULLs) of name. */ + char[] name; /* Name. */ +}; + + +/* Supported events suitable for MASK parameter of INOTIFY_ADD_WATCH. */ +enum IN_ACCESS = 0x00000001; /* File was accessed. */ +enum IN_MODIFY = 0x00000002; /* File was modified. */ +enum IN_ATTRIB = 0x00000004; /* Metadata changed. */ +enum IN_CLOSE_WRITE = 0x00000008; /* Writtable file was closed. */ +enum IN_CLOSE_NOWRITE = 0x00000010; /* Unwrittable file closed. */ +enum IN_CLOSE = (IN_CLOSE_WRITE | IN_CLOSE_NOWRITE); /* Close. */ +enum IN_OPEN = 0x00000020; /* File was opened. */ +enum IN_MOVED_FROM = 0x00000040; /* File was moved from X. */ +enum IN_MOVED_TO = 0x00000080; /* File was moved to Y. */ +enum IN_MOVE = (IN_MOVED_FROM | IN_MOVED_TO); /* Moves. */ +enum IN_CREATE = 0x00000100; /* Subfile was created. */ +enum IN_DELETE = 0x00000200; /* Subfile was deleted. */ +enum IN_DELETE_SELF = 0x00000400; /* Self was deleted. */ +enum IN_MOVE_SELF = 0x00000800; /* Self was moved. */ + +/* Additional events and flags. Some of these flags are unsupported, + but still should be present */ +enum IN_UNMOUNT = 0x00002000; /* Backing fs was unmounted. */ +enum IN_Q_OVERFLOW = 0x00004000; /* Event queued overflowed. */ +enum IN_IGNORED = 0x00008000; /* File was ignored. */ + +enum IN_ONLYDIR = 0x01000000; /* Only watch the path if it is a + directory. */ +enum IN_DONT_FOLLOW = 0x02000000; /* Do not follow a sym link. */ +enum IN_EXCL_UNLINK = 0x04000000; /* Exclude events on unlinked + objects. */ +enum IN_MASK_ADD = 0x20000000; /* Add to the mask of an already + existing watch. */ +enum IN_ISDIR = 0x40000000; /* Event occurred against dir. */ +enum IN_ONESHOT = 0x80000000; /* Only send event once. */ + + +/* Create and initialize inotify-kqueue instance. */ +extern (C) int inotify_init (); + +/* Create and initialize inotify-kqueue instance. */ +extern (C) int inotify_init1 (int flags); + +/* Add watch of object NAME to inotify-kqueue instance FD. Notify about + events specified by MASK. */ +extern (C) int inotify_add_watch (int fd, const char *name, uint32_t mask); + +/* Remove the watch specified by WD from the inotify instance FD. */ +extern (C) int inotify_rm_watch (int fd, int wd); + +/* Libinotify specific. Set inotify instance parameter. */ +extern (C) int inotify_set_param (int fd, int param, intptr_t value); + Added: head/net/onedrive/files/patch-Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/net/onedrive/files/patch-Makefile Sun Mar 17 13:28:57 2019 (r496060) @@ -0,0 +1,43 @@ +--- Makefile.orig 2018-09-09 20:14:01 UTC ++++ Makefile +@@ -1,5 +1,5 @@ + DC = dmd +-DFLAGS = -g -ofonedrive -O -L-lcurl -L-lsqlite3 -L-ldl -J. ++DFLAGS = -g -ofonedrive -O -L-lcurl -L-lsqlite3 -L-ldl -L-linotify -J. + PREFIX = /usr/local + + SOURCES = \ +@@ -14,26 +14,19 @@ SOURCES = \ + src/sqlite.d \ + src/sync.d \ + src/upload.d \ +- src/util.d ++ src/util.d \ ++ src/freebsd_inotify.d + +-all: onedrive onedrive.service ++all: onedrive + + clean: +- rm -f onedrive onedrive.o onedrive.service ++ rm -f onedrive onedrive.o + +-install: all +- install -D onedrive $(DESTDIR)$(PREFIX)/bin/onedrive +- install -D -m 644 onedrive.service $(DESTDIR)/usr/lib/systemd/user/onedrive.service ++# install: all ++# install -D onedrive $(DESTDIR)$(PREFIX)/bin/onedrive + + onedrive: version $(SOURCES) + $(DC) $(DFLAGS) $(SOURCES) + +-onedrive.service: +- sed "s|@PREFIX@|$(PREFIX)|g" onedrive.service.in > onedrive.service +- + uninstall: + rm -f $(DESTDIR)$(PREFIX)/bin/onedrive +- rm -f $(DESTDIR)/usr/lib/systemd/user/onedrive.service +- +-version: .git/HEAD .git/index +- echo $(shell git describe --tags) >version +\ No newline at end of file Added: head/net/onedrive/files/patch-src_monitor.d ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/net/onedrive/files/patch-src_monitor.d Sun Mar 17 13:28:57 2019 (r496060) @@ -0,0 +1,15 @@ +--- src/monitor.d.orig 2019-03-16 11:55:35 UTC ++++ src/monitor.d +@@ -1,10 +1,11 @@ +-import core.sys.linux.sys.inotify; ++// import core.sys.linux.sys.inotify; + import core.stdc.errno; + import core.sys.posix.poll, core.sys.posix.unistd; + import std.exception, std.file, std.path, std.regex, std.stdio, std.string; + import config; + import selective; + import util; ++import freebsd_inotify; + static import log; + + // relevant inotify events Added: head/net/onedrive/files/version ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/net/onedrive/files/version Sun Mar 17 13:28:57 2019 (r496060) @@ -0,0 +1 @@ +1.1.3 Added: head/net/onedrive/pkg-descr ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/net/onedrive/pkg-descr Sun Mar 17 13:28:57 2019 (r496060) @@ -0,0 +1,15 @@ +A complete tool to interact with OneDrive on Linux. +Built following the UNIX philosophy. + +Features: + State caching + Real-Time file monitoring with Inotify + Resumable uploads + Support OneDrive for Business (part of Office 365) + Shared folders (not Business) + +What's missing: + While local changes are uploaded right away, remote changes are delayed + No GUI + +WWW: https://github.com/skilion/onedrive Added: head/net/onedrive/pkg-plist ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/net/onedrive/pkg-plist Sun Mar 17 13:28:57 2019 (r496060) @@ -0,0 +1,3 @@ +bin/onedrive +%%DOCSDIR%%/README.md +%%EXAMPLESDIR%%/config
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201903171328.x2HDSvxp072573>