diff --git a/net/onedrive/Makefile b/net/onedrive/Makefile index e5e652217..d4282730e 100644 --- a/net/onedrive/Makefile +++ b/net/onedrive/Makefile @@ -2,62 +2,45 @@ PORTNAME= onedrive DISTVERSIONPREFIX= v -DISTVERSION= 2.3.3 -PORTREVISION= 1 +DISTVERSION= 2.4.0 CATEGORIES= net MAINTAINER= hiroo.ono+freebsd@gmail.com COMMENT= OneDrive Free client LICENSE= GPLv3 +LICENSE_FILE= ${WRKSRC}/LICENSE LIB_DEPENDS= libcurl.so:ftp/curl \ libinotify.so:devel/libinotify BUILD_DEPENDS= ldc2:lang/ldc RUN_DEPENDS= ${LOCALBASE}/sbin/logrotate:sysutils/logrotate -USES= gmake pkgconfig sqlite +USES= autoreconf gmake pkgconfig sqlite USE_GITHUB= yes GH_ACCOUNT= abraunegg +GNU_CONFIGURE= yes PKGCONFIG= pkgconf -MAKE_ARGS= DC=ldc2 -INSTALL_TARGET= install.noservice -OPTIONS_DEFINE= DOCS NOTIFY BASH ZSH -OPTIONS_DEFAULT= DOCS NOTIFY BASH ZSH +OPTIONS_DEFINE= NOTIFY COMPLETION +OPTIONS_DEFAULT= NOTIFY COMPLETION OPTIONS_SUB= yes -DOCFILES= README.md README.Office365.md config CHANGELOG.md - -NOTIFY_VARS= NOTIFICATIONS=1 +NOTIFY_CONFIGURE_ENABLE= notifications NOTIFY_USES= gnome -NOTIFY_USE= GNOME=glib20 +NOTIFY_USE= GNOME=glib20,gdkpixbuf2 NOTIFY_LIB_DEPENDS= libnotify.so:devel/libnotify -BASH_COMPLETION_DIR= ${LOCALBASE}/share/bash-completion/completions -ZSH_COMPLETION_DIR= ${LOCALBASE}/share/zsh/site-functions +COMPLETION_DESC= Install completion for BASH and ZSH +COMPLETION_CONFIGURE_ENABLE= completions + +ONEDRIVE_LOGDIR= /var/log/${PORTNAME} post-extract: ${CP} ${FILESDIR}/freebsd_inotify.d ${WRKSRC}/src -do-install-DOCS-on: -.for f in ${DOCFILES} - @${MKDIR} ${STAGEDIR}${DOCSDIR} - ${INSTALL_DATA} ${WRKSRC}/${f} ${STAGEDIR}${DOCSDIR} -.endfor - -do-install-BASH-on: - @${MKDIR} ${STAGEDIR}${BASH_COMPLETION_DIR} - ${INSTALL_DATA} ${WRKSRC}/completions/complete.bash \ - ${STAGEDIR}${BASH_COMPLETION_DIR}/onedrive - -do-install-ZSH-on: - @${MKDIR} ${STAGEDIR}${ZSH_COMPLETION_DIR} - ${INSTALL_DATA} ${WRKSRC}/completions/complete.zsh \ - ${STAGEDIR}${ZSH_COMPLETION_DIR}/_onedrive - -post-install-DOCS-on: - ${INSTALL_MAN} ${WRKSRC}/onedrive.1 ${STAGEDIR}${MANPREFIX}/man/man1 +post-install: + ${INSTALL} -d -m 0775 ${STAGEDIR}${ONEDRIVE_LOGDIR} .include diff --git a/net/onedrive/distinfo b/net/onedrive/distinfo index 7195a2c49..f7abb5e4d 100644 --- a/net/onedrive/distinfo +++ b/net/onedrive/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1556052070 -SHA256 (abraunegg-onedrive-v2.3.3_GH0.tar.gz) = 9ee4ea4b3ea880f7624761d053bbb09a2465706685e9ed258c50925ff5e32377 -SIZE (abraunegg-onedrive-v2.3.3_GH0.tar.gz) = 599457 +TIMESTAMP = 1587180559 +SHA256 (abraunegg-onedrive-v2.4.0_GH0.tar.gz) = 79575c47e6e90bacff00dad3c2de1e2a4251c74256717889a22c59862c614d3b +SIZE (abraunegg-onedrive-v2.4.0_GH0.tar.gz) = 670382 diff --git a/net/onedrive/files/patch-Makefile b/net/onedrive/files/patch-Makefile deleted file mode 100644 index 602fd1ec2..000000000 --- a/net/onedrive/files/patch-Makefile +++ /dev/null @@ -1,40 +0,0 @@ ---- Makefile.orig 2019-04-16 02:18:26 UTC -+++ Makefile -@@ -7,8 +7,9 @@ gitversion := $(shell if [ -f .git/HEAD ] ; then echo - - ifeq ($(pkgconfig),1) - LIBS = $(shell pkg-config --libs sqlite3 libcurl) -+LIBS += $(shell pkg-config --libs libinotify) - else --LIBS = -lcurl -lsqlite3 -+LIBS = -lcurl -lsqlite3 -linotify - endif - ifeq ($(notifications),1) - NOTIF_VERSIONS = -version=NoPragma -version=NoGdk -version=Notifications -@@ -74,7 +75,8 @@ SOURCES = \ - src/sync.d \ - src/upload.d \ - src/util.d \ -- src/progress.d -+ src/progress.d \ -+ src/freebsd_inotify.d - - ifeq ($(notifications),1) - SOURCES += src/notifications/notify.d src/notifications/dnotify.d -@@ -90,11 +92,12 @@ onedrive: version $(SOURCES) - - install.noservice: onedrive onedrive.1 - mkdir -p $(DESTDIR)/var/log/onedrive -- chown root.users $(DESTDIR)/var/log/onedrive -+ # chown root.users $(DESTDIR)/var/log/onedrive - chmod 0775 $(DESTDIR)/var/log/onedrive -- install -D onedrive $(DESTDIR)$(PREFIX)/bin/onedrive -- install -D onedrive.1 $(DESTDIR)$(MANDIR)/onedrive.1 -- install -D -m 644 logrotate/onedrive.logrotate $(DESTDIR)/etc/logrotate.d/onedrive -+ install onedrive $(DESTDIR)$(PREFIX)/bin/onedrive -+ # install -D onedrive.1 $(DESTDIR)$(MANDIR)/onedrive.1 -+ install -d $(DESTDIR)$(PREFIX)/etc/logrotate.d -+ install -m 644 logrotate/onedrive.logrotate $(DESTDIR)$(PREFIX)/etc/logrotate.d/onedrive - - install: all install.noservice - for i in $(DOCFILES) ; do install -D -m 644 $$i $(DESTDIR)$(DOCDIR)/$$i ; done diff --git a/net/onedrive/files/patch-Makefile.in b/net/onedrive/files/patch-Makefile.in new file mode 100644 index 000000000..acd0ec596 --- /dev/null +++ b/net/onedrive/files/patch-Makefile.in @@ -0,0 +1,61 @@ +--- Makefile.in.orig 2020-04-21 16:35:56.832704000 +0900 ++++ Makefile.in 2020-04-21 17:48:33.921286000 +0900 +@@ -25,6 +25,7 @@ + curl_LIBS = @curl_LIBS@ + sqlite_LIBS = @sqlite_LIBS@ + notify_LIBS = @notify_LIBS@ ++inotify_LIBS = @inotify_LIBS@ + COMPLETIONS = @COMPLETIONS@ + BASH_COMPLETION_DIR = @BASH_COMPLETION_DIR@ + ZSH_COMPLETION_DIR = @ZSH_COMPLETION_DIR@ +@@ -54,7 +55,7 @@ + system_unit_files = contrib/systemd/onedrive@.service + user_unit_files = contrib/systemd/onedrive.service + +-DOCFILES = README.md config LICENSE CHANGELOG.md docs/Docker.md docs/INSTALL.md docs/Office365.md docs/USAGE.md ++DOCFILES = README.md config CHANGELOG.md docs/Office365.md docs/USAGE.md + + ifneq ("$(wildcard /etc/redhat-release)","") + RHEL = $(shell cat /etc/redhat-release | grep -E "(Red Hat Enterprise Linux Server|CentOS)" | wc -l) +@@ -66,6 +67,7 @@ + + SOURCES = \ + src/config.d \ ++ src/freebsd_inotify.d \ + src/itemdb.d \ + src/log.d \ + src/main.d \ +@@ -101,14 +103,15 @@ + else \ + echo $(version) > version ; \ + fi +- $(DC) $(DCFLAGS) $(addprefix -L,$(curl_LIBS)) $(addprefix -L,$(sqlite_LIBS)) $(addprefix -L,$(notify_LIBS)) -L-ldl $(SOURCES) -of$@ ++ $(DC) $(DCFLAGS) $(addprefix -L,$(curl_LIBS)) $(addprefix -L,$(sqlite_LIBS)) $(addprefix -L,$(notify_LIBS)) $(addprefix -L,$(inotify_LIBS)) -L-ldl $(SOURCES) -of$@ + + install: all +- $(INSTALL) -D onedrive $(DESTDIR)$(bindir)/onedrive +- $(INSTALL) -D onedrive.1 $(DESTDIR)$(mandir)/man1/onedrive.1 +- $(INSTALL) -D -m 644 contrib/logrotate/onedrive.logrotate $(DESTDIR)$(sysconfdir)/logrotate.d/onedrive ++ $(INSTALL) -s onedrive $(DESTDIR)$(bindir)/onedrive ++ $(INSTALL) onedrive.1 $(DESTDIR)$(mandir)/man1/onedrive.1 ++ mkdir -p $(DESTDIR)$(sysconfdir)/logrotate.d ++ $(INSTALL) -m 644 contrib/logrotate/onedrive.logrotate $(DESTDIR)$(sysconfdir)/logrotate.d/onedrive + mkdir -p $(DESTDIR)$(docdir) +- $(INSTALL) -D -m 644 $(DOCFILES) $(DESTDIR)$(docdir) ++ $(INSTALL) -m 644 $(DOCFILES) $(DESTDIR)$(docdir) + ifeq ($(HAVE_SYSTEMD),yes) + $(INSTALL) -d -m 0755 $(DESTDIR)$(systemduserunitdir) $(DESTDIR)$(systemdsystemunitdir) + ifeq ($(RHEL),1) +@@ -125,8 +128,10 @@ + endif + endif + ifeq ($(COMPLETIONS),yes) +- $(INSTALL) -D -m 644 contrib/completions/complete.zsh $(DESTDIR)$(ZSH_COMPLETION_DIR)/_onedrive +- $(INSTALL) -D -m 644 contrib/completions/complete.bash $(DESTDIR)$(BASH_COMPLETION_DIR)/onedrive ++ mkdir -p $(DESTDIR)$(ZSH_COMPLETION_DIR) ++ $(INSTALL) -m 644 contrib/completions/complete.zsh $(DESTDIR)$(ZSH_COMPLETION_DIR)/_onedrive ++ mkdir -p $(DESTDIR)$(BASH_COMPLETION_DIR) ++ $(INSTALL) -m 644 contrib/completions/complete.bash $(DESTDIR)$(BASH_COMPLETION_DIR)/onedrive + endif + + diff --git a/net/onedrive/files/patch-configure.ac b/net/onedrive/files/patch-configure.ac new file mode 100644 index 000000000..43fb6f55b --- /dev/null +++ b/net/onedrive/files/patch-configure.ac @@ -0,0 +1,10 @@ +--- configure.ac.orig 2020-04-21 17:07:18.318838000 +0900 ++++ configure.ac 2020-04-21 17:09:11.896888000 +0900 +@@ -144,6 +144,7 @@ + dnl Check for required modules: curl and sqlite at the moment + PKG_CHECK_MODULES([curl],[libcurl]) + PKG_CHECK_MODULES([sqlite],[sqlite3]) ++PKG_CHECK_MODULES([inotify],[libinotify]) + + dnl + dnl systemd and unit file directories diff --git a/net/onedrive/pkg-descr b/net/onedrive/pkg-descr index aaad10c73..145af40ba 100644 --- a/net/onedrive/pkg-descr +++ b/net/onedrive/pkg-descr @@ -1,15 +1,21 @@ -A complete tool to interact with OneDrive on Linux. -Built following the UNIX philosophy. +A free Microsoft OneDrive Client which supports OneDrive Personal, OneDrive +for Business, OneDrive for Office365 and Sharepoint. +This Powerful and highly configurable client can run on all major Linux +distributions, as a Docker container and on FreeBSD. +This client is a 'fork' of skilion client which was abandoned in 2018. Features: - State caching - Real-Time file monitoring with Inotify - Resumable uploads - Support OneDrive for Business (part of Office 365) - Shared folders (not Business) + * State caching + * Real-Time file monitoring with Inotify + * File uploat / download validation to ensure data integrity + * Resumable uploads + * Support OneDrive for Business (part of Office 365) + * Sharepoint / Office365 Shared libraries (refer to docs/Office365.md + to configure) What's missing: - While local changes are uploaded right away, remote changes are delayed - No GUI + * While local changes are uploaded right away, remote changes are delayed + until next sync when using --monitor + * No GUI -WWW: https://github.com/skilion/onedrive +WWW: https://github.com/abraunegg/onedrive diff --git a/net/onedrive/pkg-message b/net/onedrive/pkg-message new file mode 100644 index 000000000..52b18ae77 --- /dev/null +++ b/net/onedrive/pkg-message @@ -0,0 +1,9 @@ +[ +{ type: install + message: <