Commit Graph

4835 Commits

Author SHA1 Message Date
Knut Ahlers
a7adb9b2d3 Added nofuse tag for windows builds
This configuration is supported since GoBuilder 1.16.0 so now we should be able to build windows binaries in GoBuilder

License: MIT
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2015-06-14 16:21:12 +02:00
Juan Batiz-Benet
8c26eff1ca Merge pull request #1371 from ipfs/use-sharness-test-seq
ipfs-test-lib: use test_seq from sharness
2015-06-14 04:58:22 -07:00
Christian Couder
408a818b4a ipfs-test-lib: use test_seq from sharness
As Sharness now includes test_seq we can remove
our implementation.

License: MIT
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
2015-06-14 11:21:32 +02:00
Juan Batiz-Benet
8b81793c7d Merge pull request #1370 from ipfs/update-sharness
Update sharness
2015-06-13 15:59:33 -07:00
Christian Couder
0befe2bf88 install-sharness.sh: update sharness
License: MIT
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
2015-06-13 22:40:34 +02:00
Christian Couder
ac9f441f1f sharness/Makefile: force sharness version check
License: MIT
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
2015-06-13 22:39:37 +02:00
Christian Couder
3101df56fa install-sharness.sh: implement updates
We want to be able to update Sharness to benefit from
new features.

License: MIT
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
2015-06-13 22:36:47 +02:00
W. Trevor King
3e6905e8ba core/commands/unixfs: Rename 'ipfs unixfs' to 'ipfs file'
To be less confusing to newcomers (the IPFS filesystem isn't
Unix-specific anyway, and it isn't even very POSIX-specific [1,2,3]).
I'm a bit uncertain about having one name for users and another for
devs, but the consensus seems to be that mainaining two names is worth
the trouble [4].  We also kicked around:

* 'files' (plural),
* 'filesystem' (too long), and
* 'fs' (redundant after 'ipfs', even though IPFS isn't just about
  filesystems)

on IRC [5 through 6].  I wish there was a more evocative term.  I'm
never sure where "file" lands on the scale between "filesysytem",
"everything is a file", "a single chunk of data with an associated
inode".  But we can't think of anything better.

[1]: https://github.com/ipfs/go-ipfs/pull/1348#issuecomment-110529070
[2]: https://github.com/ipfs/go-ipfs/pull/1348#issuecomment-110529921
[3]: https://github.com/ipfs/go-ipfs/pull/1136/files#r29377283
  In my response to this (no longer visibile on GitHub):

  On Wed, Apr 29, 2015 at 01:30:04PM -0700, Juan Batiz-Benet wrote:
  > > +package fsnode
  >
  > i think this package should be called `unixfs` as that's the
  > abstraction that this is calling to.

  Will do, although I don't see what's especially Unix-y about these
  file nodes.

[4]: https://github.com/ipfs/go-ipfs/pull/1348#issuecomment-110529811
[5]: https://botbot.me/freenode/ipfs/2015-06-09/?msg=41428456&page=5
[6]: https://botbot.me/freenode/ipfs/2015-06-09/?msg=41430703&page=5

License: MIT
Signed-off-by: W. Trevor King <wking@tremily.us>
2015-06-13 13:07:13 -07:00
W. Trevor King
663f37cb99 core/commands/unixfs/ls: Don't recurse into chunked files
Folks operating at the Unix-filesystem level shouldn't care about that
level of Merkle-DAG detail.  Before this commit we had:

  $ ipfs unixfs ls /ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4/busybox
  /ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4/busybox:
  ... several lines of empty-string names ...

And with this commit we have:

  $ ipfs unixfs ls /ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4/busybox
  /ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4/busybox

I also reworked the argument-prefixing (object.Argument) in the output
marshaller to avoid redundancies like:

  $ ipfs unixfs ls /ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4/busybox
  /ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4/busybox:
  /ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4/busybox

As a side-effect of this rework, we no longer have the trailing blank
line that we used to have after the final directory listing.

The new ErrImplementation is like Python's NotImplementedError, and is
mostly a way to guard against external changes that would need
associated updates in this code.  For example, once we see something
that's neither a file nor a directory, we'll have to update the switch
statement to handle those objects.

License: MIT
Signed-off-by: W. Trevor King <wking@tremily.us>
2015-06-13 13:06:34 -07:00
W. Trevor King
434871ba18 core/commands/unixfs: Add 'ipfs unixfs ls ...'
This is similar to 'ipfs ls ...', but it:

* Lists file sizes that match the content size:

    $ ipfs --encoding=json unixfs ls /ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4
    {
      "Objects": [
        {
          "Argument": "/ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4",
          "Links": [
            {
              "Name": "busybox",
              "Hash": "QmPbjmmci73roXf9VijpyQGgRJZthiQfnEetaMRGoGYV5a",
              "Size": 1947624,
              "Type": 2
            }
          ]
        }
      ]
    }
    $ ipfs cat /ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4/busybox | wc -c
    1947624

  'ipfs ls ...', on the other hand, is using the Merkle-descendant
  size, which also includes fanout links and the typing information
  unixfs objects store in their Data:

    $ ipfs --encoding=json ls /ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4
    {
      "Objects": [
        {
          "Hash": "/ipfs/QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4",
          "Links": [
            {
              "Name": "busybox",
              "Hash": "QmPbjmmci73roXf9VijpyQGgRJZthiQfnEetaMRGoGYV5a",
              "Size": 1948128,
              "Type": 2
            }
          ]
        }
      ]
    }

* Has a simpler text output corresponding to POSIX ls [1]:

    $ ipfs unixfs ls /ipfs/QmV2FrBtvue5ve7vxbAzKz3mTdWq8wfMNPwYd8d9KHksCF/gentoo/stage3/amd64/2015-04-02
    bin
    dev
    etc
    proc
    run
    sys
    $ ipfs ls /ipfs/QmV2FrBtvue5ve7vxbAzKz3mTdWq8wfMNPwYd8d9KHksCF/gentoo/stage3/amd64/2015-04-02
    QmSRCHG21Sbqm3EJG9aEBo4vS7Fqu86pAjqf99MyCdNxZ4 1948183 bin/
    QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn 4       dev/
    QmUz1Z5jnQEjwr78fiMk5babwjJBDmhN5sx5HvPiTGGGjM 1207    etc/
    QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn 4       proc/
    QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn 4       run/
    QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn 4       sys/

  The minimal output allows us to start off with POSIX compliance and
  then add options (which may or may not be POSIX compatible) to
  adjust the output format as we get a better feel for what we need
  ([2] through [3]).

[1]: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/ls.html
[2]: https://botbot.me/freenode/ipfs/2015-06-12/?msg=41724727&page=5
[3]: https://botbot.me/freenode/ipfs/2015-06-12/?msg=41725146&page=5

License: MIT
Signed-off-by: W. Trevor King <wking@tremily.us>
2015-06-13 12:44:26 -07:00
Juan Batiz-Benet
848502de1b Merge pull request #1367 from ipfs/wantmanager-cleanup
select with context when sending on channels
2015-06-12 15:14:09 -07:00
Jeromy
b12cc09f64 select with context when sending on channels
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-06-12 11:32:06 -07:00
Juan Batiz-Benet
41785f3b59 Merge pull request #1356 from ipfs/fix/bitswap-leak
prevent wantmanager from leaking goroutines (and memory)
2015-06-11 20:39:08 -07:00
Jeromy
952dc9c60f go-ipfs version 0.3.5
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-06-11 20:32:30 -07:00
Jeromy
e014a66bf5 comments from CR
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-06-11 16:43:21 -07:00
Jeromy
c5b40b3b02 prevent wantmanager from leaking goroutines (and memory)
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-06-11 09:38:09 -07:00
W. Trevor King
15135e10df core/commands/ls: Remove trailing tabs
Since 607468a9 (beautify 'ipfs ls' and 'ipfs object links', #833)
we've had these.  That pull request was about text/tabwriter [1] and
elastic tabstops [2], but we don't need a column separator at the end
of each line.

[1]: https://golang.org/pkg/text/tabwriter/
[2]: http://nickgravgaard.com/elastic-tabstops/index.html

Licence: MIT
Signed-off-by: W. Trevor King <wking@tremily.us>
2015-06-09 06:23:44 -07:00
Juan Batiz-Benet
feba3e1da5 Merge pull request #1334 from ipfs/patch/patch
'key' objects dont marshal to json well
2015-06-08 13:36:11 -07:00
Jeromy
c214210354 add some basic testing for object patch 2015-06-08 10:19:26 -07:00
Jeromy
b4f55d337a 'key' objects dont marshal to json well 2015-06-08 10:19:26 -07:00
Juan Batiz-Benet
217fe2687c Merge pull request #1287 from ipfs/feat/httpApiTcpPort0
httpGw: make /tcp/0 work
2015-06-08 03:46:35 -07:00
Henry
4b337bb7e8 daemon: addressed CR comments 2015-06-08 11:08:10 +02:00
Henry
07b3415cdb http endpoints: dont print before listen
also splits api, gw and fuse bring up into helper functions
2015-06-08 10:56:05 +02:00
Juan Batiz-Benet
aad700bd6d Merge pull request #1342 from ipfs/observe-addr-twice
Better symmetric NAT avoidance.
2015-06-07 18:14:52 -07:00
Juan Batiz-Benet
500bb51759 p2p/net/identify: clump addr observers into groups
Different mutliaddrs is not enough. Nodes may share transports.
NAT port mappings will likely only work on the base IP/TCP port
pair. We go one step further, and require different root (IP)
addrs. Just in case some NATs group by IP. In practice, this is
what we want: use addresses only if hosts that are on different
parts of the network have seen this address.
2015-06-07 17:00:56 -07:00
Juan Batiz-Benet
96ed20bffe p2p/protocol/identify: dont double count observers
If the same peer observed the same address twice, it would be
double counted as different observations. This change adds a map
to make sure we're counting each observer once.

This is easily extended to require more than two observations,
but i have not yet encountered NATs for whom this is relevant.
2015-06-07 16:48:02 -07:00
Juan Batiz-Benet
39716077b4 Merge pull request #1341 from ipfs/use-go-sleep
Use github.com/chriscool/go-sleep
2015-06-07 03:58:53 -07:00
Christian Couder
14a3315dc7 sharness/test-lib: use go-sleep to sleep
License: MIT
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
2015-06-07 10:29:08 +02:00
Christian Couder
fd449af227 test/Makefile: build go-sleep
License: MIT
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
2015-06-07 10:28:13 +02:00
Juan Batiz-Benet
268894c85f Merge pull request #1340 from harlantwood/patch-1
fix typo
2015-06-06 21:31:15 -07:00
Juan Batiz-Benet
553960d413 Merge pull request #1339 from ipfs/update-cheggaaa-pb
Godeps: update cheggaaa/pb to the latest version
2015-06-06 16:35:49 -07:00
Christian Couder
d4e0ad97df Vendor github.com/chriscool/go-sleep
License: MIT
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
2015-06-06 23:07:21 +02:00
Harlan T Wood
e82e5cd87e fix typo 2015-06-06 13:42:54 -07:00
Christian Couder
24de361001 Godeps: update cheggaaa/pb to the latest version
License: MIT
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
2015-06-05 23:48:17 +02:00
Juan Batiz-Benet
13cd226bff Merge pull request #1317 from ipfs/builder-default
make the default repo for corebuilder work
2015-06-03 16:30:02 -07:00
Jeromy
6b16981979 make the default repo for corebuilder work 2015-06-03 16:06:15 -07:00
Juan Batiz-Benet
6cff7e87f6 Merge pull request #1299 from ipfs/feat/patch
implement patch command
2015-06-03 15:56:00 -07:00
Jeromy
40e423d6dc implement an ipfs patch command for modifying merkledag objects
WIP: object creator command

better docs

move patch command into object namespace

dont ignore cancel funcs

addressing comment from CR

add two new subcommands to object patch and clean up main Run func

cancel contexts in early returns

switch to util.Key
2015-06-03 15:24:07 -07:00
Juan Batiz-Benet
0494a4db2c Merge pull request #1327 from rht/cleanup-rand
Swap all 'crypto/rand' rng in tests with 'math/rand'
2015-06-03 15:11:25 -07:00
Juan Batiz-Benet
0397bdf5d3 Merge pull request #1329 from ipfs/implement-test-seq
ipfs-test-lib: implement test_seq()
2015-06-03 15:10:54 -07:00
Juan Batiz-Benet
238fac5488 Merge pull request #1330 from ipfs/fix/test-deps
fix up some dependencies to avoid circular record deps
2015-06-03 15:10:16 -07:00
Christian Couder
59cac0a161 test-lib: use test_seq()
License: MIT
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
2015-06-03 23:53:24 +02:00
Christian Couder
3c2e0ba586 ipfs-test-lib: implement test_seq()
License: MIT
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
2015-06-03 23:51:50 +02:00
Jeromy
c2b7456b49 fix up some dependencies to avoid circular record deps 2015-06-03 14:27:31 -07:00
Juan Batiz-Benet
898863d632 Merge pull request #1323 from ipfs/revert-godeps-update
Revert "godeps: update everything to master"
2015-06-03 14:26:16 -07:00
Jeromy
db98e77de9 add a test for issue repro 2015-06-03 08:41:25 -07:00
rht
f239a38fbb golint on core/commands 2015-06-03 18:44:28 +07:00
rht
e671ab2f42 Swap all 'crypto/rand' rng in tests with 'math/rand' 2015-06-03 18:12:34 +07:00
Juan Batiz-Benet
18297e2dc9 Merge pull request #1326 from rht/master
Test repeat in 10 sec: increase check frequency tenfold
2015-06-03 03:30:17 -07:00
rht
c14ab9bd51 go vet on core/commands 2015-06-03 17:20:40 +07:00