Skip to content

yoichiro/chromeos_network_file_share

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Overview
========
This is a Chrome App that extends the built in File Manager to be able to
support connecting to SMB file shares.

The NaCl port is currently patched from Samba 4.1.16.

Setup
=====

1) Download the NaCl SDK and unzip it as directed.
      https://developer.chrome.com/native-client/sdk/download

2) Update the SDK and get the canary version (at least until the required code
gets to the stable branch).
      cd nacl_sdk
      ./naclsdk update
      ./naclsdk update pepper_canary
      export NACL_SDK_ROOT=/path/to/nacl_sdk/pepper_canary

3) Get depot_tools and gclient.
      git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

4) Put depot_tools on the path (or put it in your .bachrc)
      https://www.chromium.org/developers/how-tos/install-depot-tools

5) Get WebPorts (aka NaCl Ports).
      mkdir webports
      cd webports
      gclient config --name=src https://chromium.googlesource.com/webports.git
      gclient sync

6) Install a missing dependency from the NaCl SDK.
      sudo apt-get install libglib2.0-0:i386

7) Build Samba.
      cd webports/src
      ./make_all.sh samba F=1 V=1

8) Get the App code.
      git clone https://github.com/GoogleChrome/chromeos_network_file_share

9) Install bower.
      https://syntaxsugar.github.io/posts/2014/05/how-to-install-bower-on-ubuntu-1404-lts/

      sudo apt-get install nodejs
      sudo ln -s /usr/bin/nodejs /usr/bin/node
      sudo apt-get install npm
      sudo npm install -g bower

10) Get the bower dependencies.
      cd chromeos_network_file_share/app
      bower install

11) Install Vulcanize and Crisper.
      sudo npm install -g vulcanize
      sudo npm install -g crisper

12) Setup build environment
      # Set NACL_SDK_ROOT if not done above
      export TOOLCHAIN=glibc
      export NACL_ARCH=x86_64 # or arm
      # TODO: Figure out how to build both at same time.

13) Finally you can build!
      cd chromeos_network_file_share
      nacl/build.sh

Arm Nacl_IO Bug
===============

There is currently a bug that causes a crash on ARM Release builds. Until the
bug is fixed the workaround is to build libnacl_io.so with optimizations turned
off. If you don't do this extra step prior to building the app the ARM build
will crash.

Before building the app edit $NACL_SDK_ROOT/src/nacl_io/Makefile and add
'CFLAGS += -O0' (without quotes) after the line 'CFLAGS += -DNACL_IO_LOGGING=0'
then

cd $NACL_SDK_ROOT/src/nacl_io/
make V=1 CONFIG=Release TOOLCHAIN=glibc NACL_ARCH=arm

That will rebuild libnacl_io.so with optimization disabled. Then rebuild the
app.

Nacl SDK
========

  # Update SDK (currently using pepper_canary).
  ./naclsdk update pepper_canary --force

Building The App/Extension
==========================

  # Setup environment
  export NACL_SDK_ROOT=/path/to/your/nacl/sdk

  # Build
  nacl/build.sh

  # Package
  tools/to_temp.sh

Troubleshooting
===============

In file included from nacl_fsp.cc:24:
./SambaFsp.h:20:10: fatal error: 'samba/libsmbclient.h' file not found
#include "samba/libsmbclient.h"

If you see this error follow the steps above for 'Setup environment'

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 49.8%
  • C++ 42.5%
  • HTML 4.5%
  • Shell 1.6%
  • Other 1.6%