Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Codecvt is not abailable in debian jessie. #68

Closed
hamer13 opened this issue Sep 13, 2016 · 5 comments
Closed

Codecvt is not abailable in debian jessie. #68

hamer13 opened this issue Sep 13, 2016 · 5 comments

Comments

@hamer13
Copy link

hamer13 commented Sep 13, 2016

Hello.

The error:

/home/hamer/download/librevault/librevault-0.1.18.7/daemon/folder/fs/FSFolder.cpp:42:19: fatal error: codecvt: No such file or directory
 #include <codecvt>
                   ^
compilation terminated.

The codecvt is absent in libstdc++ that included in debian stable release. I found some invocations in the code:

root@debian13:/home/hamer/download/librevault/librevault-0.1.18.7# grep -r codecvt .

./contrib/spdlog/include/spdlog/common.h:#include <codecvt>
./contrib/spdlog/include/spdlog/common.h:    std::wstring_convert<std::codecvt_utf8<wchar_t>, wchar_t> c;

./daemon/control/Config.cpp:#include <codecvt>

./daemon/folder/fs/FSFolder.cpp:#include <codecvt>
./daemon/folder/fs/FSFolder.cpp:        std::string norm_path = rel_path.generic_string(std::codecvt_utf8_utf16<wchar_t>());

./daemon/folder/p2p/WSService.cpp:#include <codecvt>
./daemon/folder/p2p/WSService.cpp:      ssl_ctx_ptr->use_certificate_file(Config::get()->paths().cert_path.string(std::codecvt_utf8_utf16<wchar_t>()), ssl_context::pem);
./daemon/folder/p2p/WSService.cpp:      ssl_ctx_ptr->use_private_key_file(Config::get()->paths().key_path.string(std::codecvt_utf8_utf16<wchar_t>()), ssl_context::pem);

In the article http://stackoverflow.com/questions/15615136/is-codecvt-not-a-std-header I found a workaround for it.

Is it possible to implement this workaround in librevault?

@hamer13
Copy link
Author

hamer13 commented Sep 13, 2016

Installed GCC:

||/ Name                      Version       Architecture Description
+++-=========================-=============-============-===============================================
ii  cpp                       4:4.9.2-2     amd64        GNU C preprocessor (cpp)
ii  cpp-4.9                   4.9.2-10      amd64        GNU C preprocessor
ii  g++                       4:4.9.2-2     amd64        GNU C++ compiler
ii  g++-4.9                   4.9.2-10      amd64        GNU C++ compiler
ii  gcc                       4:4.9.2-2     amd64        GNU C compiler
ii  gcc-4.9                   4.9.2-10      amd64        GNU C compiler
ii  gcc-4.9-base:amd64        4.9.2-10      amd64        GCC, the GNU Compiler Collection (base package)
ii  libgcc-4.9-dev:amd64      4.9.2-10      amd64        GCC support library (development files)
ii  libgcc1:amd64             1:4.9.2-10    amd64        GCC support library
ii  libstdc++-4.9-dev:amd64   4.9.2-10      amd64        GNU Standard C++ Library v3 (development files)
ii  libstdc++6:amd64          4.9.2-10      amd64        GNU Standard C++ Library v3

@GamePad64
Copy link
Collaborator

Well, Debian Jessie support is tricky, as Librevault is using the C++14 standard (presented 2 years ago!), and gcc 4.9 is a bit old to support it.
I have tried to bring the support using multiple ways (rebuilding libstdc++/static linking), and now I end up with a really interesting way of running it on Debian Jessie (and Ubuntu Trusty): static-linked daemon + AppImage with gui (with embedded daemon).

You can install it using the following repository string:

deb https://releases.librevault.com/debian static main

I have tested it on Debian Jessie amd64/i386

@probonopd
Copy link

probonopd commented Sep 14, 2016

Interesting @GamePad64 but why on earth would you want to put an AppImage inside a deb file, essentially taking away most of the advantages of the AppImage format (e.g., no need to install, no need for root rights, can place anywhere, not tied to any particular distribution, etc.)?

https://releases.librevault.com/debian/pool/main/libr/librevault/librevault_0.1.18.10-26~static_amd64.deb

If you just provide the AppImage itself for download, then even CentOS users should be able to run it.

@GamePad64
Copy link
Collaborator

@probonopd Because Debian users are convenient with that. They use APT as their package management system. They install apps using APT, update them using APT and remove them using APT. You see, the [AppImage in .deb] is a measure only for old distributions. Ubuntu Xenial comes with a native-built .deb.

And as for AppImage:
I like this format very much, and I am going to provide AppImage package in its "pure" form, but first I must integrate an updater into the GUI using "AppImageUpdate" under the hood and tune the build farm to create zsync metafiles. I have created an issue for this: #69

@probonopd
Copy link

@GamePad64 is the AppImage available for download somewhere? Thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants