Coder Social home page Coder Social logo

grive's Introduction

GRIVE NO LONGER MAINTAINED PLEASE USE GRIVE2

Grive is DEPRECATED. Please refer to the newest fork Grive2.

Grive2, WHICH IS ACTIVELY MAINTAINED, is here: https://github.com/vitalif/grive2

grive's People

Contributors

alerque avatar artox avatar dalingrin avatar dylanwulf avatar estomagado avatar fairlight1337 avatar gontadu avatar gwiltschek avatar ilpianista avatar jesus-bustos avatar joselsegura avatar lemonboy avatar madjar avatar match065 avatar nestal avatar nightgunner5 avatar openningia avatar stephencox avatar svartkanin avatar vitalif avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

grive's Issues

"Invalid scope" error on validation url

Hi!

[stephan@host:~/cvs/grive/foo]$ ../grive -a

Please go to this URL and get an authenication code:

https://accounts.google.com/o/oauth2/auth?scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile+https%3A%2F%2Fdocs.google.com%2Ffeeds%2F+https%3A%2F%2Fdocs.googleusercontent.com%2F+https%3A%2F%2Fspreadsheets.google.com%2Ffeeds%2F+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.file%2F&redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=code&client_id=22314510474.apps.googleusercontent.com

when visiting the URL i get a 400 (Bad Request) with:

Error: invalid_scope
A native application: grive
You can email the developer of this application at: [email protected]
Some requested scopes were invalid. {valid=[https://www.googleapis.com/auth/userinfo.profile, https://docs.googleusercontent.com/, https://docs.google.com/feeds/, https://www.googleapis.com/auth/userinfo.email, https://spreadsheets.google.com/feeds/], invalid=[https://www.googleapis.com/auth/drive.file/], noncanonical=[https://docs.google.com/feeds/(https://www.googleapis.com/auth/docs), https://spreadsheets.google.com/feeds/(https://www.googleapis.com/auth/spreadsheets), https://docs.googleusercontent.com/(https://www.googleapis.com/auth/docs)]}

Request Details
scope=https://www.googleapis.com/auth/drive.file/ https://www.googleapis.com/auth/userinfo.profile https://docs.googleusercontent.com/ https://docs.google.com/feeds/ https://www.googleapis.com/auth/userinfo.email https://spreadsheets.google.com/feeds/
response_type=code
access_type=offline
redirect_uri=urn:ietf:wg:oauth:2.0:oob
approval_prompt=auto
client_id=22314510474.apps.googleusercontent.com

:-?

Ubuntu 12.04 x64.

grive temp file "p" being uploaded

Hiho!

grive
,,,
Uploading p
Uploading building-generic.svg~
....

a) "p" is a grive temp file

b) since when are files i haven't added to gdrive being uploaded? My SVG editor creates tilde files (and i create local files) which i don't want synced. Can we have a CLI option to disable auto-add behaviour?

cannot compile on centos / some issue with boost

[root@search2 build]# uname -a
Linux search2.wegreen.de 2.6.32-220.13.1.el6.x86_64 #1 SMP Tue Apr 17 23:56:34 BST 2012 x86_64 x86_64 x86_64 GNU/Linux
[root@search2 build]# cmake ..
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Found libgcrypt: -lgcrypt -ldl -lgpg-error
-- Found JSON-C: /usr/lib64/libjson.so
-- Found CURL: /usr/lib64/libcurl.so
-- Found EXPAT: /usr/lib64/libexpat.so
-- Boost version: 1.41.0
-- Found the following Boost libraries:
-- filesystem
-- system
-- Found libbfd: /usr/lib64/libbfd.so
-- Found libiberty: /usr/lib64/libiberty.a
-- Configuring done
-- Generating done
-- Build files have been written to: /root/match065-grive-d24440f/build
[root@search2 build]# make
Scanning dependencies of target grive
[ 1%] Building CXX object libgrive/CMakeFiles/grive.dir/src/drive/Drive.cc.o
[ 3%] Building CXX object libgrive/CMakeFiles/grive.dir/src/drive/ResourceTree.cc.o
/root/match065-grive-d24440f/libgrive/src/drive/ResourceTree.cc: In member function »gr::Resource* gr::ResourceTree::FindByPath(const boost::filesystem::path&)«:
/root/match065-grive-d24440f/libgrive/src/drive/ResourceTree.cc:131: Fehler: »const struct std::basic_string<char, std::char_traits, std::allocator >« hat kein Element namens »filename«
make[2]: *** [libgrive/CMakeFiles/grive.dir/src/drive/ResourceTree.cc.o] Fehler 1
make[1]: *** [libgrive/CMakeFiles/grive.dir/all] Fehler 2
make: *** [all] Fehler 2

exception: Throw in function (unknown)

exception: Throw in function (unknown)
Dynamic exception type: gr::http::Error
std::exception::what: std::exception
[gr::expt::MsgTag_] = malformed
[gr::http::CurlCodeTag_] = 3
[gr::http::HttpResponseTag*] = 0

Reading remote server list problem

In the actual revision (197abfd), when I try to sync my files, I get ths error:

Reading remote server file list
grive: /home/julio/Downloads/match065-grive-197abfd/libgrive/src/drive/Resource.cc:177: void gr::Resource::FromRemoteFile(const gr::Entry&, const gr::DateTime&): Assertion 'm_state == local_new || m_state == local_changed || m_state == remote_deleted' failed.
Aborted (core dumped)

Grive does not download "Google Documents" files

On Windows the Google Drive client creates JSON files for each Google Document; if you double click those files the browser is launched and the document is opened on Google Docs.
Grive doesn't create those files

Build fails with GCC 4.7

[ 7%] Building CXX object CMakeFiles/grive.dir/src/main.cc.o
/home/bash/builds/grive-git/src/grive/src/main.cc: In function ‘int main(int, char*)’:
/home/bash/builds/grive-git/src/grive/src/main.cc:89:39: error: ‘getopt’ was not declared in this scope
make[2]: *
* [CMakeFiles/grive.dir/src/main.cc.o] Error 1
make[1]: *** [CMakeFiles/grive.dir/all] Error 2
make: *** [all] Error 2

Crash during grive -a

When running "grive -a" after inserting the Google API key the program crashes.
This is the output:


Please go to this URL and get an authentication code:

https://accounts.google.com/o/oauth2/auth?scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile+https%3A%2F%2Fdocs.google.com%2Ffeeds%2F+https%3A%2F%2Fdocs.googleusercontent.com%2F+https%3A%2F%2Fspreadsheets.google.com%2Ffeeds%2F&redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=code&client_id=22314510474.apps.googleusercontent.com


Please input the authentication code here:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
terminate called after throwing an instance of 'boost::exception_detail::clone_implgr::http::Error'
what(): std::exception
Abgebrochen

The local directory is empty.
The remote directory contains some Google Docs documents and two folders with subfolders.

Error building commit c01ace7d18

http://fpaste.org/Hzhd/

/home/vascom/rpmbuild/BUILD/match065-grive-c01ace7/libgrive/src/util/Gdbm.cc: In constructor 'gr::Gdbm::Gdbm(const string&)':
/home/vascom/rpmbuild/BUILD/match065-grive-c01ace7/libgrive/src/util/Gdbm.cc:39:67: error: invalid conversion from 'void ()()' to 'void ()(const char_)' [-fpermissive]
In file included from /home/vascom/rpmbuild/BUILD/match065-grive-c01ace7/libgrive/src/util/Gdbm.cc:24:0:
/usr/include/gdbm.h:101:18: error: initializing argument 5 of 'gdbm_file_info_ gdbm_open(const char_, int, int, int, void ()(const char))' [-fpermissive]
/home/vascom/rpmbuild/BUILD/match065-grive-c01ace7/libgrive/src/util/Gdbm.cc:42:39: error: invalid conversion from 'const char_' to 'char_' [-fpermissive]
/home/vascom/rpmbuild/BUILD/match065-grive-c01ace7/libgrive/src/util/Gdbm.cc: In member function 'std::string gr::Gdbm::Get(const string&) const':
/home/vascom/rpmbuild/BUILD/match065-grive-c01ace7/libgrive/src/util/Gdbm.cc:54:37: warning: narrowing conversion of 'ckey.std::basic_string<_CharT, _Traits, _Alloc>::size<char, std::char_traits, std::allocator >()' from 'std::basic_string::size_type {aka long unsigned int}' to 'int' inside { } is ill-formed in C++11 [-Wnarrowing]
/home/vascom/rpmbuild/BUILD/match065-grive-c01ace7/libgrive/src/util/Gdbm.cc: In member function 'void gr::Gdbm::Set(const string&, const string&)':
/home/vascom/rpmbuild/BUILD/match065-grive-c01ace7/libgrive/src/util/Gdbm.cc:72:37: warning: narrowing conversion of 'ckey.std::basic_string<_CharT, _Traits, _Alloc>::size<char, std::char_traits, std::allocator >()' from 'std::basic_string::size_type {aka long unsigned int}' to 'int' inside { } is ill-formed in C++11 [-Wnarrowing]
/home/vascom/rpmbuild/BUILD/match065-grive-c01ace7/libgrive/src/util/Gdbm.cc:73:37: warning: narrowing conversion of 'cval.std::basic_string<_CharT, _Traits, Alloc>::size<char, std::char_traits, std::allocator >()' from 'std::basic_string::size_type {aka long unsigned int}' to 'int' inside { } is ill-formed in C++11 [-Wnarrowing]
make[2]: *
* [libgrive/CMakeFiles/grive.dir/src/util/Gdbm.cc.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory /home/vascom/rpmbuild/BUILD/match065-grive-c01ace7' make[1]: *** [libgrive/CMakeFiles/grive.dir/all] Error 2 make[1]: Leaving directory/home/vascom/rpmbuild/BUILD/match065-grive-c01ace7'
make: *** [all] Error 2

Not work in Fedora 17

I am successfully compiled grive in Fedora 17 x86_64. But at startup it has Segmentation fault and not work.

unexpected local_deleted entries

Hiho,

i'm seeing lots of unexplainable entries which say local_deleted:

beal-2005-07.pdf in state but not exist on disk: local_deleted
beal-2005-12.pdf in state but not exist on disk: local_deleted

The files are indeed not local (after a full sync of grive), but are in GDrive and are in the same dir as other files which sync just fine:

beal-20080400.pdf unchanged on disk: local_new
beal-2005-07.pdf in state but not exist on disk: local_deleted
beal-2005-12.pdf in state but not exist on disk: local_deleted
beal-200603.pdf unchanged on disk: local_new

How can i best provide more info with which to help debug this type of thing?

anomalous sync of moved folder

i notice this anomalous behevior of grive

i create a folder with a file inside
:/gdrive$mkdir newfolder1
:
/gdrive$touch newfolder1/newdocument1

i run grive
:~/gdrive$grive
Reading local directories
Synchronizing folders
Reading remote server file list
Synchronizing files
sync "./newfolder1" doesn't exist in server, uploading
sync "./newfolder1/newdocument1" doesn't exist in server, uploading

i move the folder into another directory in my grive root folder
:~/gdrive$mv newfolder1 myfiles/

:/gdrive$grive
Reading local directories
Synchronizing folders
Reading remote server file list
file "./newfolder1/newdocument1" parent deleted recursively in local (local_deleted)
file "./newfolder1/newdocument1" parent deleted recursively in local (local_deleted)
Synchronizing files
sync "./myfiles/newfolder1" doesn't exist in server, uploading
sync "./myfiles/newfolder1/newdocument1" deleted in remote. deleting local
sync "./newfolder1" deleted in local. deleting remote
:
/gdrive$

the file inside the moved folder results deleted both local and remote.

/ in name on drive is interpreted as folder separator

If you create folders in drive which contain the character / in their name (yes, stupid but it's possible)
grive will use them as folder separator and will create a folder and subfolder.

If you try to put files into the directory or subdirectory, grive crashes while trying to upload.
Files pulled from drive to this directory will be detected as "new" on every run -> always crashes afterwards.

Possible solutions i see:

  • ignore and don't sync this folders
  • replace / by other character

I might provide exception-output tonight.

Uncaught exception at startup

[stephan@hamsun:/cvs/grive/grive/foo]$ ../grive
terminate called after throwing an instance of 'gr::Json::Error'
what(): std::exception
Aborted (core dumped)
[stephan@hamsun:
/cvs/grive/grive/foo]$ git p^C
[stephan@hamsun:/cvs/grive/grive/foo]$ cd -
/home/stephan/cvs/grive
[stephan@hamsun:
/cvs/grive]$ git pull
Already up-to-date.
[stephan@hamsun:~/cvs/grive]$ date
Fri May 18 23:20:00 CEST 2012

i have no idea how to get the source version using git, but tig says i have f2a659c:

2012-05-17 20:55 Matchman Green o [master] [origin/HEAD] [origin/master] don't throw even if can't read config

lol! ;)

Problem with "spaced file"

Error downloading file with space in the name:

./grive
downloading ./WORK/Oxylane/delta/RUN / CRASH Procedures RNS.doc
terminate called after throwing an instance of 'std::runtime_error'
what(): cannot open file ./WORK/Oxylane/delta/RUN / CRASH Procedures RNS.doc for writing
Aborted (core dumped)

grive upload itself to Google Drive

I created a folder "My Google Drive" in my home directory then copied "grive" executable inside.
Then I launched ./grive and it updates my files as it should.

However at the end of the sync process it uploaded itself to the google drive. I believe this is not intended ( as grive already ignores the .grive and .grive_state files it should also ignore the executable )

build the code

Hi, sorry but i don't know how to build grive file, if you help me i can try it and give you feedback ok?
I use ubuntu 32 bit

directory watcher ( inotify support )

This is not an issue but a suggestion, I crawled around the web to gain information about inotify and what I found was quite disappointing.

The main show stopper is that inotify doesn't support recursive directory watchers, and to code the recursive stuff ourself is quite silly ( lot's of work in balancing tree ).

However there exists a set of libraries and tools called inotify-tools that already implement the feature (using optimized redblack tree, which is neat)

take a look here:
https://github.com/rvoicilas/inotify-tools/wiki/

I suggest using this stuff instead of directly linking to inotify

Strange error

What does it mean?

$ grive
local ./Proceedings of Technical Meetings/ION 1998/INSTALL/UNIX/INSTALL is newer
http error 400
terminate called after throwing an instance of 'gr::http::Exception'
what(): CURL code = 0 HTTP code = 400 (����)
Аварийный останов (core dumped)

Segmentation fault (core dumped)

Built from source on Ubuntu 12.04 x86_64, using boost 1.49.0

cdesai@icebox:~$ valgrind grive
==18597== Memcheck, a memory error detector
==18597== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.
==18597== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info
==18597== Command: grive
==18597==
==18597== Invalid write of size 8
==18597== at 0x6673F55: boost::filesystem3::detail::directory_iterator_construct(boost::filesystem3::directory_iterator&, boost::filesystem3::path const&, boost::system::error_code_) (in /home/cdesai/misc/boost/1_49_0/stage/lib/libboost_filesystem.so.1.49.0)
==18597== by 0x4EE23E6: boost::filesystem3::directory_iterator::directory_iterator(boost::filesystem3::path const&) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE0F38: gr::State::FromLocal(boost::filesystem3::path const&, gr::Resource_) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE0E9F: gr::State::FromLocal(boost::filesystem3::path const&) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EC9781: gr::Drive::Drive(gr::OAuth2&) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x41BA2B: main (in /usr/local/bin/grive)
==18597== Address 0xb9043c0 is 0 bytes after a block of size 32 alloc'd
==18597== at 0x4C2B1C7: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==18597== by 0x4EE23B4: boost::filesystem3::directory_iterator::directory_iterator(boost::filesystem3::path const&) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE0F38: gr::State::FromLocal(boost::filesystem3::path const&, gr::Resource_) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE0E9F: gr::State::FromLocal(boost::filesystem3::path const&) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EC9781: gr::Drive::Drive(gr::OAuth2&) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x41BA2B: main (in /usr/local/bin/grive)
==18597==
==18597== Invalid read of size 8
==18597== at 0x66711E8: boost::filesystem3::detail::directory_iterator_increment(boost::filesystem3::directory_iterator&, boost::system::error_code_) (in /home/cdesai/misc/boost/1_49_0/stage/lib/libboost_filesystem.so.1.49.0)
==18597== by 0x667435D: boost::filesystem3::detail::directory_iterator_construct(boost::filesystem3::directory_iterator&, boost::filesystem3::path const&, boost::system::error_code_) (in /home/cdesai/misc/boost/1_49_0/stage/lib/libboost_filesystem.so.1.49.0)
==18597== by 0x4EE23E6: boost::filesystem3::directory_iterator::directory_iterator(boost::filesystem3::path const&) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE0F38: gr::State::FromLocal(boost::filesystem3::path const&, gr::Resource_) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE0E9F: gr::State::FromLocal(boost::filesystem3::path const&) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EC9781: gr::Drive::Drive(gr::OAuth2&) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x41BA2B: main (in /usr/local/bin/grive)
==18597== Address 0xb9043c0 is 0 bytes after a block of size 32 alloc'd
==18597== at 0x4C2B1C7: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==18597== by 0x4EE23B4: boost::filesystem3::directory_iterator::directory_iterator(boost::filesystem3::path const&) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE0F38: gr::State::FromLocal(boost::filesystem3::path const&, gr::Resource_) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE0E9F: gr::State::FromLocal(boost::filesystem3::path const&) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EC9781: gr::Drive::Drive(gr::OAuth2&) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x41BA2B: main (in /usr/local/bin/grive)
==18597==
file .xsession-errors is ignored by grive
==18597== Invalid read of size 8
==18597== at 0x66711E8: boost::filesystem3::detail::directory_iterator_increment(boost::filesystem3::directory_iterator&, boost::system::error_code_) (in /home/cdesai/misc/boost/1_49_0/stage/lib/libboost_filesystem.so.1.49.0)
==18597== by 0x4EE24A2: boost::filesystem3::directory_iterator::increment() (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE2A2B: void boost::iterator_core_access::incrementboost::filesystem3::directory_iterator(boost::filesystem3::directory_iterator&) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE2647: boost::iterator_facade<boost::filesystem3::directory_iterator, boost::filesystem3::directory_entry, boost::single_pass_traversal_tag, boost::filesystem3::directory_entry&, long>::operator++() (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE1169: gr::State::FromLocal(boost::filesystem3::path const&, gr::Resource_) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE0E9F: gr::State::FromLocal(boost::filesystem3::path const&) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EC9781: gr::Drive::Drive(gr::OAuth2&) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x41BA2B: main (in /usr/local/bin/grive)
==18597== Address 0xb9043c0 is 0 bytes after a block of size 32 alloc'd
==18597== at 0x4C2B1C7: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==18597== by 0x4EE23B4: boost::filesystem3::directory_iterator::directory_iterator(boost::filesystem3::path const&) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE0F38: gr::State::FromLocal(boost::filesystem3::path const&, gr::Resource_) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE0E9F: gr::State::FromLocal(boost::filesystem3::path const&) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EC9781: gr::Drive::Drive(gr::OAuth2&) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x41BA2B: main (in /usr/local/bin/grive)
==18597==
file .goutputstream-GDJJEW is ignored by grive
file .repopickle_.gitconfig is ignored by grive
file .pulse-cookie is ignored by grive
file .filezilla.log.1 is ignored by grive
file .config is ignored by grive
==18597== Invalid write of size 8
==18597== at 0x6673F55: boost::filesystem3::detail::directory_iterator_construct(boost::filesystem3::directory_iterator&, boost::filesystem3::path const&, boost::system::error_code_) (in /home/cdesai/misc/boost/1_49_0/stage/lib/libboost_filesystem.so.1.49.0)
==18597== by 0x4EE23E6: boost::filesystem3::directory_iterator::directory_iterator(boost::filesystem3::path const&) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE0F38: gr::State::FromLocal(boost::filesystem3::path const&, gr::Resource_) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE1142: gr::State::FromLocal(boost::filesystem3::path const&, gr::Resource_) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE0E9F: gr::State::FromLocal(boost::filesystem3::path const&) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EC9781: gr::Drive::Drive(gr::OAuth2&) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x41BA2B: main (in /usr/local/bin/grive)
==18597== Address 0xb90ffc0 is 0 bytes after a block of size 32 alloc'd
==18597== at 0x4C2B1C7: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==18597== by 0x4EE23B4: boost::filesystem3::directory_iterator::directory_iterator(boost::filesystem3::path const&) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE0F38: gr::State::FromLocal(boost::filesystem3::path const&, gr::Resource_) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE1142: gr::State::FromLocal(boost::filesystem3::path const&, gr::Resource_) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE0E9F: gr::State::FromLocal(boost::filesystem3::path const&) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EC9781: gr::Drive::Drive(gr::OAuth2&) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x41BA2B: main (in /usr/local/bin/grive)
==18597==
==18597== Invalid read of size 8
==18597== at 0x667031C: boost::filesystem3::detail::dir_itr_close(void_&, void_&) (in /home/cdesai/misc/boost/1_49_0/stage/lib/libboost_filesystem.so.1.49.0)
==18597== by 0x66713FE: boost::filesystem3::detail::directory_iterator_increment(boost::filesystem3::directory_iterator&, boost::system::error_code_) (in /home/cdesai/misc/boost/1_49_0/stage/lib/libboost_filesystem.so.1.49.0)
==18597== by 0x4EE24A2: boost::filesystem3::directory_iterator::increment() (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE2A2B: void boost::iterator_core_access::incrementboost::filesystem3::directory_iterator(boost::filesystem3::directory_iterator&) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE2647: boost::iterator_facade<boost::filesystem3::directory_iterator, boost::filesystem3::directory_entry, boost::single_pass_traversal_tag, boost::filesystem3::directory_entry&, long>::operator++() (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE1169: gr::State::FromLocal(boost::filesystem3::path const&, gr::Resource_) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE1142: gr::State::FromLocal(boost::filesystem3::path const&, gr::Resource_) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE0E9F: gr::State::FromLocal(boost::filesystem3::path const&) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EC9781: gr::Drive::Drive(gr::OAuth2&) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x41BA2B: main (in /usr/local/bin/grive)
==18597== Address 0xb90ffc0 is 0 bytes after a block of size 32 alloc'd
==18597== at 0x4C2B1C7: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==18597== by 0x4EE23B4: boost::filesystem3::directory_iterator::directory_iterator(boost::filesystem3::path const&) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE0F38: gr::State::FromLocal(boost::filesystem3::path const&, gr::Resource_) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE1142: gr::State::FromLocal(boost::filesystem3::path const&, gr::Resource_) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE0E9F: gr::State::FromLocal(boost::filesystem3::path const&) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EC9781: gr::Drive::Drive(gr::OAuth2&) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x41BA2B: main (in /usr/local/bin/grive)
==18597==
==18597== Invalid write of size 8
==18597== at 0x6670324: boost::filesystem3::detail::dir_itr_close(void_&, void_&) (in /home/cdesai/misc/boost/1_49_0/stage/lib/libboost_filesystem.so.1.49.0)
==18597== by 0x66713FE: boost::filesystem3::detail::directory_iterator_increment(boost::filesystem3::directory_iterator&, boost::system::error_code_) (in /home/cdesai/misc/boost/1_49_0/stage/lib/libboost_filesystem.so.1.49.0)
==18597== by 0x4EE24A2: boost::filesystem3::directory_iterator::increment() (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE2A2B: void boost::iterator_core_access::incrementboost::filesystem3::directory_iterator(boost::filesystem3::directory_iterator&) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE2647: boost::iterator_facade<boost::filesystem3::directory_iterator, boost::filesystem3::directory_entry, boost::single_pass_traversal_tag, boost::filesystem3::directory_entry&, long>::operator++() (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE1169: gr::State::FromLocal(boost::filesystem3::path const&, gr::Resource_) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE1142: gr::State::FromLocal(boost::filesystem3::path const&, gr::Resource_) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE0E9F: gr::State::FromLocal(boost::filesystem3::path const&) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EC9781: gr::Drive::Drive(gr::OAuth2&) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x41BA2B: main (in /usr/local/bin/grive)
==18597== Address 0xb90ffc0 is 0 bytes after a block of size 32 alloc'd
==18597== at 0x4C2B1C7: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==18597== by 0x4EE23B4: boost::filesystem3::directory_iterator::directory_iterator(boost::filesystem3::path const&) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE0F38: gr::State::FromLocal(boost::filesystem3::path const&, gr::Resource_) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE1142: gr::State::FromLocal(boost::filesystem3::path const&, gr::Resource_) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE0E9F: gr::State::FromLocal(boost::filesystem3::path const&) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EC9781: gr::Drive::Drive(gr::OAuth2&) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x41BA2B: main (in /usr/local/bin/grive)
==18597==
==18597== Invalid read of size 4
==18597== at 0x5913E16: closedir (closedir.c:46)
==18597== by 0x667034A: boost::filesystem3::detail::dir_itr_close(void_&, void_&) (in /home/cdesai/misc/boost/1_49_0/stage/lib/libboost_filesystem.so.1.49.0)
==18597== by 0x4EE22F3: boost::filesystem3::detail::dir_itr_imp::~dir_itr_imp() (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE31DD: void boost::checked_deleteboost::filesystem3::detail::dir_itr_imp(boost::filesystem3::detail::dir_itr_imp_) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE39B7: boost::detail::sp_counted_impl_pboost::filesystem3::detail::dir_itr_imp::dispose() (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x6671577: boost::filesystem3::detail::directory_iterator_increment(boost::filesystem3::directory_iterator&, boost::system::error_code_) (in /home/cdesai/misc/boost/1_49_0/stage/lib/libboost_filesystem.so.1.49.0)
==18597== by 0x4EE24A2: boost::filesystem3::directory_iterator::increment() (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE2A2B: void boost::iterator_core_access::incrementboost::filesystem3::directory_iterator(boost::filesystem3::directory_iterator&) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE2647: boost::iterator_facade<boost::filesystem3::directory_iterator, boost::filesystem3::directory_entry, boost::single_pass_traversal_tag, boost::filesystem3::directory_entry&, long>::operator++() (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE1169: gr::State::FromLocal(boost::filesystem3::path const&, gr::Resource_) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE1142: gr::State::FromLocal(boost::filesystem3::path const&, gr::Resource_) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE0E9F: gr::State::FromLocal(boost::filesystem3::path const&) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== Address 0xffff00000002 is not stack'd, malloc'd or (recently) free'd
==18597==
==18597==
==18597== Process terminating with default action of signal 11 (SIGSEGV)
==18597== General Protection Fault
==18597== at 0x5913E16: closedir (closedir.c:46)
==18597== by 0x667034A: boost::filesystem3::detail::dir_itr_close(void_&, void_&) (in /home/cdesai/misc/boost/1_49_0/stage/lib/libboost_filesystem.so.1.49.0)
==18597== by 0x4EE22F3: boost::filesystem3::detail::dir_itr_imp::~dir_itr_imp() (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE31DD: void boost::checked_deleteboost::filesystem3::detail::dir_itr_imp(boost::filesystem3::detail::dir_itr_imp_) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE39B7: boost::detail::sp_counted_impl_pboost::filesystem3::detail::dir_itr_imp::dispose() (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x6671577: boost::filesystem3::detail::directory_iterator_increment(boost::filesystem3::directory_iterator&, boost::system::error_code_) (in /home/cdesai/misc/boost/1_49_0/stage/lib/libboost_filesystem.so.1.49.0)
==18597== by 0x4EE24A2: boost::filesystem3::directory_iterator::increment() (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE2A2B: void boost::iterator_core_access::incrementboost::filesystem3::directory_iterator(boost::filesystem3::directory_iterator&) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE2647: boost::iterator_facade<boost::filesystem3::directory_iterator, boost::filesystem3::directory_entry, boost::single_pass_traversal_tag, boost::filesystem3::directory_entry&, long>::operator++() (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE1169: gr::State::FromLocal(boost::filesystem3::path const&, gr::Resource_) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE1142: gr::State::FromLocal(boost::filesystem3::path const&, gr::Resource*) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597== by 0x4EE0E9F: gr::State::FromLocal(boost::filesystem3::path const&) (in /usr/local/lib/libgrive.so.0.1.0-pre)
==18597==
==18597== HEAP SUMMARY:
==18597== in use at exit: 325,793 bytes in 4,719 blocks
==18597== total heap usage: 8,518 allocs, 3,799 frees, 857,285 bytes allocated
==18597==
==18597== LEAK SUMMARY:
==18597== definitely lost: 5,657 bytes in 8 blocks
==18597== indirectly lost: 1,896 bytes in 3 blocks
==18597== possibly lost: 16,461 bytes in 405 blocks
==18597== still reachable: 301,779 bytes in 4,303 blocks
==18597== suppressed: 0 bytes in 0 blocks
==18597== Rerun with --leak-check=full to see details of leaked memory
==18597==
==18597== For counts of detected and suppressed errors, rerun with: -v
==18597== ERROR SUMMARY: 21 errors from 7 contexts (suppressed: 2 from 2)
Segmentation fault (core dumped)

assertion during fresh pull

Hiya!

Using latest version as of 3 minutes ago:

[stephan@host:~/GDrive]$ l
total 28
drwxrwxr-x 2 stephan stephan 12288 May 25 15:44 .
drwxr-xr-x 108 stephan stephan 12288 May 25 15:35 ..
-rw-rw-r-- 1 stephan stephan 94 May 20 21:12 .grive

[stephan@host:~/GDrive]$ grive
file .grive is ignored by grive
creating "./Docs" directory
creating "./Docs/Clipart" directory
......
creating "./Docs/Gaming/SJG/Ogre/Cisco" directory
file "macromap-002.png" parent doesn't exist, ignored
grive: /home/stephan/cvs/grive/libgrive/src/drive/Resource.cc:105: void gr::Resource::FromRemote(const gr::Entry&): Assertion `m_state == local_new || m_state == local_changed || m_state == local_deleted' failed.
Aborted (core dumped)

Problem founded by rpmlint

grive.x86_64: W: shared-lib-calls-exit /usr/lib64/libgrive.so.0.1.0 exit@GLIBC_2.2.5
This library package calls exit() or _exit(), probably in a non-fork()
context. Doing so from a library is strongly discouraged - when a library
function calls exit(), it prevents the calling program from handling the
error, reporting it to the user, closing files properly, and cleaning up any
state that the program has. It is preferred for the library to return an
actual error code and let the calling program decide how to handle the
situation.

grive.x86_64: W: shared-lib-calls-exit /usr/lib64/libgrive.so.0.1.0 _exit@GLIBC_2.2.5
This library package calls exit() or _exit(), probably in a non-fork()
context. Doing so from a library is strongly discouraged - when a library
function calls exit(), it prevents the calling program from handling the
error, reporting it to the user, closing files properly, and cleaning up any
state that the program has. It is preferred for the library to return an
actual error code and let the calling program decide how to handle the
situation.

what(): key: entry is not found in object on initial sync

Pulled the last master, build it, ran it, inputted the auth code and then this happens:

terminate called after throwing an instance of 'std::runtime_error'
what(): key: entry is not found in object
Aborted

This is on linux mint 12.

Thanks

Yugge

File created in remote not download

When you create a file directly on google drive or copy new files to it, does not perform grive download these files to the local computer. The timing should be remote -> local as well as local -> remote.

Feature request: gpg encode

Thank you for this project. I have found grive useful, and think it will be interested not only for me:

encode with gnupg all files befor syncing. Is it real?

something like:
$ grive -e -r me@mail

Alex.

Grive needs libgrive.so.0 ?

As you might know already, im packaging grive for Foresight. But it looks like grive wants libgrive.so.0. And wonder where that might come from?
If grive creates it, the code makes grive depend on it. And that's not good.

warning: EnforceSonameBuildRequirements: The following dependencies are not resolved within the package or in the system database: ['soname: ELF64/libgrive.so.0(SysV x86_64)']
warning: EnforceSonameBuildRequirements: The package may not function if installed, and Conary may require the --no-deps option to install the package.

There is a way to overwrite this, but still it's somehow wrong.

syncing issue

Hello,

The issue is when I moved a folder shared previously with me to my Google drive from Google Drive website and syncing with local directory, the remote content gets deleted:

[voyager@test11 GDrive]$ grive
Reading local directories
Synchronizing folders
Reading remote server file list
file "XXX" parent deleted recursively in local (local_deleted)
file "XXY" parent deleted recursively in local (local_deleted)
...

Is there a way to control Grive's behavior - in which direction does it sync?

p.s.: Possible work-around would be to delete .grive file and do initial sync but it is just wrong solution...

Error al compilar con make OAuth2.cc

/grive/libgrive/src/protocol/OAuth2.cc: En la función miembro ‘void gr::OAuth2::Auth(const string&)’:
grive/libgrive/src/protocol/OAuth2.cc:67:36: error: no se encontró una función coincidente para la llamada a ‘gr::http::CurlAgent::Post(const string&, std::string&, gr::http::JsonResponse_)’
/grive/libgrive/src/protocol/OAuth2.cc:67:36: nota: el candidato es:
/grive/libgrive/src/http/CurlAgent.hh:55:7: nota: virtual long int gr::http::CurlAgent::Post(const string&, const string&, gr::http::Receivable_, const gr::http::Header&)
/grive/libgrive/src/http/CurlAgent.hh:55:7: nota: el candidato espera 4 argumentos, se proporcionaron 3
grive/libgrive/src/protocol/OAuth2.cc: En la función miembro ‘void gr::OAuth2::Refresh()’:
/grive/libgrive/src/protocol/OAuth2.cc:104:36: error: no se encontró una función coincidente para la llamada a ‘gr::http::CurlAgent::Post(const string&, std::string&, gr::http::JsonResponse_)’
/grive/libgrive/src/protocol/OAuth2.cc:104:36: nota: el candidato es:
/grive/libgrive/src/http/CurlAgent.hh:55:7: nota: virtual long int gr::http::CurlAgent::Post(const string&, const string&, gr::http::Receivable_, const gr::http::Header&)
/grive/libgrive/src/http/CurlAgent.hh:55:7: nota: el candidato espera 4 argumentos, se proporcionaron 3
make[2]: *** [libgrive/CMakeFiles/grive.dir/src/protocol/OAuth2.cc.o] Error 1
make[1]: *** [libgrive/CMakeFiles/grive.dir/all] Error 2
make: *** [all] Error 2

Q: Can't compile

when I try to compile I get the following error (on ubuntu with boost 1.42 installed)

aspela@dgcdev07:/src/grive$ cmake .
-- Found JSON-C: /usr/lib/libjson.so
-- Found libbfd: /usr/lib/libbfd.so
-- Found libiberty: /usr/lib/libiberty.a
-- Configuring done
-- Generating done
-- Build files have been written to: /home/aspela/src/grive
aspela@dgcdev07:
/src/grive$ make
Scanning dependencies of target grive
[ 3%] Building CXX object libgrive/CMakeFiles/grive.dir/src/drive/Drive.cc.o
[ 6%] Building CXX object libgrive/CMakeFiles/grive.dir/src/drive/Entry.cc.o
/home/aspela/src/grive/libgrive/src/drive/Entry.cc: In member function ‘void gr::Entry::FromLocal(const boost::filesystem::path&)’:
/home/aspela/src/grive/libgrive/src/drive/Entry.cc:60:29: error: ‘struct boost::filesystem::basic_pathstd::basic_string<char, boost::filesystem::path_traits>::string_type’ has no member named ‘string’
/home/aspela/src/grive/libgrive/src/drive/Entry.cc:61:31: error: ‘struct boost::filesystem::basic_pathstd::basic_string<char, boost::filesystem::path_traits>::string_type’ has no member named ‘string’
make[2]: *** [libgrive/CMakeFiles/grive.dir/src/drive/Entry.cc.o] Error 1
make[1]: *** [libgrive/CMakeFiles/grive.dir/all] Error 2
make: *** [all] Error 2

do I need to upgrade to boost 1.49?

File upload error

I got error running "grive" when there are new local files:

Uploading drive-512.png
exception: Throw in function (unknown)
Dynamic exception type: gr::http::Error
std::exception::what: std::exception
[gr::expt::MsgTag_] = malformed
[gr::http::CurlCodeTag_] = 3
[gr::http::HttpResponseTag*] = 0

Doesn't upload new files

I'm using the latest Grive (latest rev. dates to May 31) and I can't get it to upload new files anymore. When copying some new files to the Grive folder and running grive, it renames them making the files hidden and doesn't upload them.

Another exception

commit c326a41

$ gdb grive
GNU gdb (GDB) Fedora (7.4.50.20120120-42.fc17)
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
For bug reporting instructions, please see:
http://www.gnu.org/software/gdb/bugs/...
Reading symbols from /usr/bin/grive...(no debugging symbols found)...done.
Missing separate debuginfos, use: debuginfo-install grive-0.0.4-1.20120516gitc326a41.fc17.R.x86_64
(gdb) run
Starting program: /usr/bin/grive
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
terminate called after throwing an instance of 'gr::Config::Error'
what(): std::exception

Program received signal SIGABRT, Aborted.
0x0000003df5435915 in raise () from /lib64/libc.so.6
(gdb) bt
#0 0x0000003df5435915 in raise () from /lib64/libc.so.6
#1 0x0000003df54370c8 in abort () from /lib64/libc.so.6
#2 0x0000003514860bed in __gnu_cxx::__verbose_terminate_handler() () from /lib64/libstdc++.so.6
#3 0x000000351485ecf6 in ?? () from /lib64/libstdc++.so.6
#4 0x000000351485ed23 in std::terminate() () from /lib64/libstdc++.so.6
#5 0x000000351485ef4e in __cxa_throw () from /lib64/libstdc++.so.6
#6 0x000000000040fafc in gr::Config::Read(std::string const&) ()
#7 0x000000000040fbe7 in gr::Config::Config() ()
#8 0x000000000040eb6f in main ()

Error running grive

Hi,

When compiling Grive and installing i receive this error.

tom@amy:/data/grive$ grive -a
grive: symbol lookup error: grive: undefined symbol: _ZN2gr3log12CompositeLogC1Ev

Here is the compiling information.

tom@amy:~$ uname -a
Linux amy 3.2.0-24-generic #38-Ubuntu SMP Tue May 1 16:18:50 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

tom@amy:~$ git clone https://github.com/match065/grive.git
Cloning into 'grive'...
remote: Counting objects: 1870, done.
remote: Compressing objects: 100% (660/660), done.
remote: Total 1870 (delta 1207), reused 1832 (delta 1172)
Receiving objects: 100% (1870/1870), 881.59 KiB | 230 KiB/s, done.
Resolving deltas: 100% (1207/1207), done.

tom@amy:$ cd grive/
tom@amy:
/grive$ cmake .

-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- checking for module 'openssl'
-- found openssl, version 1.0.1
-- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libssl.so;/usr/lib/x86_64-linux-gnu/libcrypto.so (found version "1..1")
-- Found JSON-C: /usr/lib/x86_64-linux-gnu/libjson.so
-- Found CURL: /usr/lib/x86_64-linux-gnu/libcurl.so
-- Found EXPAT: /usr/lib/x86_64-linux-gnu/libexpat.so
-- Boost version: 1.46.1
-- Found the following Boost libraries:
-- filesystem
-- system
-- Found libbfd: /usr/lib/libbfd.so
-- Found libiberty: /usr/lib/libiberty.a
-- Configuring done
-- Generating done
-- Build files have been written to: /home/tom/grive

tom@amy:~/grive$ make
Scanning dependencies of target grive
[ 3%] Building CXX object libgrive/CMakeFiles/grive.dir/src/drive/Resource.cc.o
[ 6%] Building CXX object libgrive/CMakeFiles/grive.dir/src/drive/State.cc.o
[ 9%] Building CXX object libgrive/CMakeFiles/grive.dir/src/drive/ResourceTree.cc.o
[ 12%] Building CXX object libgrive/CMakeFiles/grive.dir/src/drive/Drive.cc.o
[ 15%] Building CXX object libgrive/CMakeFiles/grive.dir/src/drive/Entry.cc.o
[ 18%] Building CXX object libgrive/CMakeFiles/grive.dir/src/http/XmlResponse.cc.o
[ 21%] Building CXX object libgrive/CMakeFiles/grive.dir/src/http/Agent.cc.o
[ 25%] Building CXX object libgrive/CMakeFiles/grive.dir/src/http/Download.cc.o
[ 28%] Building CXX object libgrive/CMakeFiles/grive.dir/src/http/Header.cc.o
[ 31%] Building CXX object libgrive/CMakeFiles/grive.dir/src/http/ResponseLog.cc.o
[ 34%] Building CXX object libgrive/CMakeFiles/grive.dir/src/http/StringResponse.cc.o
[ 37%] Building CXX object libgrive/CMakeFiles/grive.dir/src/protocol/OAuth2.cc.o
[ 40%] Building CXX object libgrive/CMakeFiles/grive.dir/src/protocol/Json.cc.o
[ 43%] Building CXX object libgrive/CMakeFiles/grive.dir/src/protocol/JsonResponse.cc.o
[ 46%] Building CXX object libgrive/CMakeFiles/grive.dir/src/util/StdioFile.cc.o
[ 50%] Building CXX object libgrive/CMakeFiles/grive.dir/src/util/Crypt.cc.o
[ 53%] Building CXX object libgrive/CMakeFiles/grive.dir/src/util/Exception.cc.o
[ 56%] Building CXX object libgrive/CMakeFiles/grive.dir/src/util/OS.cc.o
[ 59%] Building CXX object libgrive/CMakeFiles/grive.dir/src/util/DateTime.cc.o
[ 62%] Building CXX object libgrive/CMakeFiles/grive.dir/src/util/SignalHandler.cc.o
[ 65%] Building CXX object libgrive/CMakeFiles/grive.dir/src/util/log/CompositeLog.cc.o
[ 68%] Building CXX object libgrive/CMakeFiles/grive.dir/src/util/log/Log.cc.o
[ 71%] Building CXX object libgrive/CMakeFiles/grive.dir/src/util/log/CommonLog.cc.o
[ 75%] Building CXX object libgrive/CMakeFiles/grive.dir/src/util/log/DefaultLog.cc.o
[ 78%] Building CXX object libgrive/CMakeFiles/grive.dir/src/xml/Node.cc.o
[ 81%] Building CXX object libgrive/CMakeFiles/grive.dir/src/xml/TreeBuilder.cc.o
[ 84%] Building CXX object libgrive/CMakeFiles/grive.dir/src/xml/NodeSet.cc.o
[ 87%] Building CXX object libgrive/CMakeFiles/grive.dir/src/bfd/Debug.cc.o
[ 90%] Building CXX object libgrive/CMakeFiles/grive.dir/src/bfd/SymbolInfo.cc.o
[ 93%] Building CXX object libgrive/CMakeFiles/grive.dir/src/bfd/Backtrace.cc.o
Linking CXX shared library libgrive.so
[ 93%] Built target grive
Scanning dependencies of target grive_executable
[ 96%] Building CXX object grive/CMakeFiles/grive_executable.dir/src/main.cc.o
[100%] Building CXX object grive/CMakeFiles/grive_executable.dir/src/Config.cc.o
Linking CXX executable grive
[100%] Built target grive_executable

tom@amy:~/grive$ sudo make install
[ 93%] Built target grive
[100%] Built target grive_executable
Install the project...
-- Install configuration: ""
-- Up-to-date: /usr/local/lib/libgrive.so.0.1.0
-- Up-to-date: /usr/local/lib/libgrive.so.0
-- Up-to-date: /usr/local/lib/libgrive.so
-- Up-to-date: /usr/local/include/grive/drive/ResourceTree.hh
-- Up-to-date: /usr/local/include/grive/drive/State.hh
-- Up-to-date: /usr/local/include/grive/drive/Drive.hh
-- Up-to-date: /usr/local/include/grive/drive/CommonUri.hh
-- Up-to-date: /usr/local/include/grive/drive/Entry.hh
-- Up-to-date: /usr/local/include/grive/drive/Resource.hh
-- Up-to-date: /usr/local/include/grive/protocol/Json.hh
-- Up-to-date: /usr/local/include/grive/protocol/JsonResponse.hh
-- Up-to-date: /usr/local/include/grive/protocol/OAuth2.hh
-- Up-to-date: /usr/local/include/grive/util/OS.hh
-- Up-to-date: /usr/local/include/grive/util/Crypt.hh
-- Up-to-date: /usr/local/include/grive/util/StdioFile.hh
-- Up-to-date: /usr/local/include/grive/util/Function.hh
-- Up-to-date: /usr/local/include/grive/util/CArray.hh
-- Up-to-date: /usr/local/include/grive/util/DateTime.hh
-- Up-to-date: /usr/local/include/grive/util/SignalHandler.hh
-- Up-to-date: /usr/local/include/grive/util/Destroy.hh
-- Up-to-date: /usr/local/include/grive/util/FileSystem.hh
-- Up-to-date: /usr/local/include/grive/util/Exception.hh
-- Up-to-date: /usr/local/include/grive/xml/TreeBuilder.hh
-- Up-to-date: /usr/local/include/grive/xml/Error.hh
-- Up-to-date: /usr/local/include/grive/xml/NodeSet.hh
-- Up-to-date: /usr/local/include/grive/xml/Node.hh
-- Up-to-date: /usr/local/bin/grive

tom@amy:~/grive$ grive -a
grive: symbol lookup error: grive: undefined symbol: _ZN2gr3log12CompositeLogC1Ev

Permissions problem

Hi,

permissions of downloaded files are 600. On MacOS X (native Google Drive App) they are 655. 600 makes it rather unusable for uses cases such as using it to synchronize assets for web servers ...

lg

All files ignored

I'm new to filing any type of issues, so please let me know if you need any other information.
I compiled and installed grive on Fedora 16, 64 bit. After authenticating and running grive for the first time, my google drive folders are created but all my files are ignored. When I search in the folders they are empty. suggestions?

Why is grive referring to the location where it was compiled?

This happens if I include a symlink to a folder in the grive's sync directory.
Note: /tmp/pacaurtmp-pankajm/grive-git/ is the folder where grive was compiled
and ./prog/ is the symlink in the current grive directory which is at ~/gdrive.

The debug output :

last sync time: 2012-06-07T06:07:38.667Z
Reading local directories
exception: /tmp/pacaurtmp-pankajm/grive-git/src/grive/libgrive/src/util/OS.cc(57): Throw in function gr::DateTime gr::os::FileCTime(const string&)
Dynamic exception type: boost::exception_detail::clone_implgr::os::Error
std::exception::what: std::exception
[gr::expt::BacktraceTag*] = #0 0x7ffd167da4f9 /usr/lib/libgrive.so.0 gr::Exception::Exception()
#1 0x7ffd167d9985 /usr/lib/libgrive.so.0 gr::os::Error::Error()
#2 0x7ffd167d951f /usr/lib/libgrive.so.0 gr::os::FileCTime(std::string const&)
#3 0x7ffd167d9599 /usr/lib/libgrive.so.0 gr::os::FileCTime(boost::filesystem3::path const&)
#4 0x7ffd167b8303 /usr/lib/libgrive.so.0 gr::Resource::FromLocal(gr::DateTime const&)
#5 0x7ffd167a6ef8 /usr/lib/libgrive.so.0 gr::State::FromLocal(boost::filesystem3::path const&, gr::Resource*)
#6 0x7ffd167a6f57 /usr/lib/libgrive.so.0 gr::State::FromLocal(boost::filesystem3::path const&, gr::Resource*)
#7 0x7ffd167a6f57 /usr/lib/libgrive.so.0 gr::State::FromLocal(boost::filesystem3::path const&, gr::Resource*)
#8 0x7ffd167a6f57 /usr/lib/libgrive.so.0 gr::State::FromLocal(boost::filesystem3::path const&, gr::Resource*)
#9 0x7ffd167a6f57 /usr/lib/libgrive.so.0 gr::State::FromLocal(boost::filesystem3::path const&, gr::Resource*)
#10 0x7ffd167a6f57 /usr/lib/libgrive.so.0 gr::State::FromLocal(boost::filesystem3::path const&, gr::Resource*)
#11 0x7ffd167a6f57 /usr/lib/libgrive.so.0 gr::State::FromLocal(boost::filesystem3::path const&, gr::Resource*)
#12 0x7ffd167a6f57 /usr/lib/libgrive.so.0 gr::State::FromLocal(boost::filesystem3::path const&, gr::Resource*)
#13 0x7ffd167ca70b /usr/lib/libgrive.so.0 gr::Drive::Drive(gr::OAuth2&, gr::Json const&)
#14 0x40f6fc grive Main(int, char**)
#15 0x40eb5a grive main
#16 0x7ffd15a31455 /lib/libc.so.6 __libc_start_main
#17 0x40ed69 grive

[boost::errinfo_errno__] = 2, "No such file or directory"
[boost::errinfo_file_name__] = ./prog/threepress-read-only/bookworm/library/django/contrib/admin/media
[boost::errinfo_api_function_*] = stat

Exception with files using "/" in its name

If you have a file in GDrive with a name containing a slash character (/), grive fails to store it. The output:

Downloading "./FileWith/inTheName.txt"
exception: /home/joseluis/src/grive/libgrive/src/util/StdioFile.cc(68): Throw in function void gr::StdioFile::Open(const string&, const char_)
Dynamic exception type: boost::exception_detail::clone_implgr::StdioFile::Error
std::exception::what: std::exception
[boost::errinfo_errno__] = 2, "No such file or directory"
[boost::errinfo_file_name__] = ./FileWith/inTheName.txt
[boost::errinfo_api_function__] = fopen
[boost::errinfo_file_open_mode_*] = wb

I think with a / ->/ replacement will be enough

Compiling Error on Fedora 17 x64

[dogpoo@Fedora17 grive]$ cmake .
-- The C compiler identification is GNU 4.7.0
-- The CXX compiler identification is GNU 4.7.0
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
CMake Warning (dev) at CMakeLists.txt:8 (add_definitions):
Policy CMP0005 is not set: Preprocessor definition values are now escaped
automatically. Run "cmake --help-policy CMP0005" for policy details. Use
the cmake_policy command to set the policy and suppress this warning.
This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) in CMakeLists.txt:
No cmake_minimum_required command is present. A line of code such as

cmake_minimum_required(VERSION 2.8)

should be added at the top of the file. The version specified may be lower
if you wish to support older CMake versions for this project. For more
information run "cmake --help-policy CMP0000".
This warning is for project developers. Use -Wno-dev to suppress it.

-- Configuring done
-- Generating done
-- Build files have been written to: /home/dogpoo/grive/grive

[dogpoo@Fedora17 grive]$ make
Scanning dependencies of target grive_executable
[ 50%] Building CXX object CMakeFiles/grive_executable.dir/src/main.o
[100%] Building CXX object CMakeFiles/grive_executable.dir/src/Config.o
Linking CXX executable grive
/usr/bin/ld: cannot find -lgrive
collect2: Fehler: ld gab 1 als Ende-Status zurück
make[2]: *** [grive] Fehler 1
make[1]: *** [CMakeFiles/grive_executable.dir/all] Fehler 2
make: *** [all] Fehler 2
[dogpoo@Fedora17 grive]$

SSL code remains in Download.cc, requires additional -lcrypto to link properly

Using commit 6d50a0f

Attempted to compile virgin pull from github, compiles fine, but when it goes to link unittest & grive, it fails with undefined references to various EVP_ (openssl/evp.h references).

I was able to get things working by inserting the link requirement of libcrypto into the libgrive CMakeLists.txt and re-building.

In libgrive/CMakeLists.txt: (line 29-ish)

endif ( BFD_FOUND )

if ( IBERTY_FOUND )

Add the following between those lines (after the endif, before the if ...):

set ( OPT_LIBS ${OPT_LIBS} -lcrypto )

Yes, this is hacky, but it's 5am and I'm watching the sunrise and didn't feel like grokking the code to remove/replace the ssl dependencies.

No manpage or --help or -h option

Any cli or Gui app need a option for know the...options
actualy this grive not provide an option for know the availables options
this make REALLY difficult to know what options are availables an what no

I suggest add a
grive --help or grive -h or manpage to grive or all to know what options are available for use

broken link error

I get this error:

grive: /home/tom/sources/grive/libgrive/src/drive/Resource.cc:207: void gr::Resource::FromLocal(const gr::DateTime&): Assertion `fs::exists( path )' failed.

it's not telling me where is the problem (neither with grive -V)

i discovered i had link to a deleted folder,

maybe there is some other ways to handle this exception.

mysterious iberty dep fails

stephan@tiny:~/cvs/grive$ cmake .
...
-- Found GDBM: /usr/lib/i386-linux-gnu/libgdbm.so
CMake Warning (dev) at libgrive/CMakeLists.txt:13 (find_package):
A logical block opening on the line

/home/stephan/cvs/grive/cmake/Modules/FindIberty.cmake:16 (IF)

closes on the line

/home/stephan/cvs/grive/cmake/Modules/FindIberty.cmake:18 (ENDIF)

with mis-matching arguments.
This warning is for project developers. Use -Wno-dev to suppress it.

CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
IBERTY_LIBRARY
linked by target "grive" in directory /home/stephan/cvs/grive/libgrive

-- Configuring incomplete, errors occurred!

i've tried skipping that with -Wno-dev, but then cannot build:

stephan@tiny:~/cvs/grive$ make
-- Found JSON-C: /usr/lib/i386-linux-gnu/libjson.so
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
IBERTY_LIBRARY
linked by target "grive" in directory /home/stephan/cvs/grive/libgrive

-- Configuring incomplete, errors occurred!
make: *** [cmake_check_build_system] Error 1

i cannot find any seemingly relevant reference to "iberty" in the package dbs for Ubuntu. What is it and where do we get it?

exception when remote dir does not exist

Hiho!

This time i think i was able to narrow down to why it happened:

sync:

...
Downloading "./Docs/Gaming/VEG/maps/macromap-002.jpg"
Downloading "./Docs/Gaming/VEG/maps/middle.town.jpg"
Uploading walker-000b.svg
exception: /home/stephan/cvs/grive/libgrive/src/http/Agent.cc(156): Throw in function long int gr::http::Agent::ExecCurl(const string&, gr::http::Receivable_, const Headers&)
Dynamic exception type: boost::exception_detail::clone_implgr::http::Error
std::exception::what: std::exception
[gr::expt::MsgTag_] = malformed
[gr::http::CurlCodeTag_] = 3
[gr::http::HttpResponseTag_] = 0
[gr::http::UrlTag*] = ?convert=false

i tried that twice with the same result, but i had a suspicion because of the specific file being synced...

So i find the file:

[stephan@host:~/GDrive]$ find . -name walker-000b.svg
./Docs/Gaming/VEG/svg/walkers/walker-000b.svg

and check GDrive. The dir doesn't yet exist, so i created it via the web interface, and then sync continues.

temp xml files left after every run

i've currently got 291 XML files in my top-level gdrive dir.

[stephan@host:~/GDrive]$ lh
total 65448
-rw-rw-r-- 1 stephan stephan 94 May 20 20:42 .grive
-rw-rw-r-- 1 stephan stephan 31889 May 20 20:42 second-184201.xml
drwxrwxr-x 3 stephan stephan 12288 May 20 20:42 .
-rw-rw-r-- 1 stephan stephan 372603 May 20 20:42 second-184200.xml
-rw-rw-r-- 1 stephan stephan 344682 May 20 20:42 second-184159.xml
-rw-rw-r-- 1 stephan stephan 345246 May 20 20:41 second-184158.xml
-rw-rw-r-- 1 stephan stephan 30425 May 20 20:41 dir-184156.xml
-rw-rw-r-- 1 stephan stephan 31889 May 20 20:26 second-182648.xml
-rw-rw-r-- 1 stephan stephan 372603 May 20 20:26 second-182647.xml
...

PS: i like that it now stores .grive in $PWD instead of ~/.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.