# FreeBSD support being added to GlusterFS



## JustinClift (Jun 21, 2014)

Hi all,

The GlusterFS project is looking to add official support for FreeBSD to our next release. Does anyone have time to try out a tarball snapshot (from today) of our code so far? https://download.gluster.org/pub/gluste ... 21.tar.bz2.

In theory(!), it should compile okay using:

```
$ ./autogen.sh
$ ./configure
$ make
$ sudo make install
```

I'm not familiar enough with the ports system in FreeBSD any more to remember how to make it work with that.  Hopefully someone else can help with that too. 

Feedback/thoughts?

[ Note, if I've posted this in the wrong forum section, feel free to move it and/or yell at me appropriately  ]

Regards and best wishes,

Justin Clift
justin@gluster.org


----------



## ironudjin (Jun 22, 2014)

Hello Justin

Unfortunately it fails to build. Here  is full build log. I use FreeBSD 10.0-STABLE r267693 with Clang 3.4.1.


----------



## JustinClift (Jun 22, 2014)

Ouch.  

The "Not a git repository" is my fault.  I removed the .git directory, forgetting it would be needed by autogen. Would you be okay to try this (much bigger) tarball instead: https://download.gluster.org/pub/gluster/experimental/glusterfs-freebsd_20140622.tar.bz2? It's a full Git repository, so it isn't the way a final tarball would be.  But, it should get past that "Not a git repo" warning.

This line in that fpaste is interesting too:


> ```
> "automake-1.14: warning: possible forward-incompatibility."
> ```


It sounds like you have a newer version of automake installed than what our tarball knows how to deal with. Is there an older version you could try? (maybe the same thing for autoconf too, I'm unsure).


----------



## NewGuy (Jun 22, 2014)

I tried out the tarball. I had to install the following packages to get glusterfs to conifgure and compile: autogen, automake and bison. With those packages on the system, I was able to compile glusterfs using the Clang compiler on FreeBSD 10.0. The `make install` script worked and I was able to run `glusterfs --version`.

There were a lot of warnings during compile time, almost all of them mentioned GNU-isms being used in the code. But, in the end, the software built properly. If I get time this week I will try to put together a port.


----------



## Oko (Jun 22, 2014)

JustinClift said:
			
		

> Hi all,
> 
> The GlusterFS project is looking to add official support for FreeBSD to our next release.



This looks very interesting. Could you point me to the documentation describing project goals? Any plans to make things more portable so that Gluster can compile on other BSDs and OSs?


----------



## JustinClift (Jun 22, 2014)

NewGuy said:
			
		

> I had to install the following packages to get glusterfs to conifgure and compile: autogen, automake and bison.



Thanks NewGuy, that's good info. We should add that information to our wiki, so other people can get it going simpler. 



			
				NewGuy said:
			
		

> With those packages on the system, I was able to compile glusterfs using the clang compiler on FreeBSD 10.0. The `make install` script worked and I was able to run `glusterfs --version`.



Cool, that's good news. I wasn't personally sure if our make requirement was GNU-make only or not. So not. 



			
				NewGuy said:
			
		

> There were a lot of warning during compile time, almost all of them mentioned GNU-isms being used in the code. But, in the end, the software built properly. If I get time this week I will try to put together a port.



Matthew D. Fuller whipped up a quick one based upon the first tarball yesterday: http://lists.freebsd.org/pipermail/free ... 19673.html.

The mailing list archive doesn't seem to make attachments available, so I've saved the .shar file he created here: https://download.gluster.org/pub/gluste ... 40621.shar.

Does that help?


----------



## JustinClift (Jun 22, 2014)

Oko said:
			
		

> This looks very interesting. Could you point me to the documentation describing project goals?



Hmm, what sort of information do you want? 

"Project goals" is a bit unclear to me.  We're a distributed filesystem, and we keep on adding new features/goals/etc. with every release.  Ideally we'd completely replace the need for SANS's and Filer's.  Though that's a bit aspirational. 

Our website is here if that helps: http://www.gluster.org.



			
				Oko said:
			
		

> Any plans to make things more portable so that Gluster can compile on other BSDs and OSs.



Definitely.  GlusterFS works on NetBSD already due to the awesome effort of Emmanuel Dreyfus (NetBSD guy).  He's actively involved, and keeps us on our toes. 

The upcoming 3.6 release of GlusterFS will support MacOS X too (but only as a client) as well as FreeBSD (fully supported), if things go well.


----------



## ironudjin (Jun 22, 2014)

Justin, I have a few questions regarding glusterfs.

1. What about file AIO support by glusterfs under FreeBSD?
2. Does glusterfs support kqueue or does it use the "fallback" method pool?
3. Are there any recommendations regarding tune ZFS datasets to work with glusterfs?

P.S.: I've successfully compiled glusterfs. Thanks.


----------



## JustinClift (Jun 23, 2014)

Heh, that's way beyond my technical knowledge level.  I'll ask on the gluster-devel mailing list, and paste answers back here.


----------



## JustinClift (Jun 23, 2014)

From Harsha on gluster-devel:



			
				ironudjin said:
			
		

> 1. What about file AIO support by glusterfs under FreeBSD?


AIO support exists if they are talking about libaio.



			
				ironudjin said:
			
		

> 2. Does glusterfs support kqueue or it uses "fallback" method pool?


AFAICS kqueue is FreeBSD poll functionality. GlusterFS by default is epoll which is nonexistent on BSD'S.  In such cases it has a fallback to poll.



			
				ironudjin said:
			
		

> 3. Are there any recommendations regarding tune ZFS datasets to work with glusterfs?


ZFS worked out of the box on Solaris for GlusterFS 1.3.x  so I would say yes.

(This one seems a bit off target to the question. I think Harsha means it might be helpful to look for Solaris ZFS recommendations, though I have no idea where they'd be.)


----------



## ironudjin (Jun 23, 2014)

JustinClift said:
			
		

> AIO support exists if they are talking about libaio.


AFAIK, libaio doesn't exist in FreeBSD. AIO is implemented in FreeBSD through the kqueue and aio modules. It seems glusterfs currently doesn't support file AIO in FreeBSD.


			
				JustinClift said:
			
		

> AFAICS kqueue is FreeBSD poll functionality. GlusterFS by default is epoll which is non existent on BSD'S.  In such cases it has a fallback to poll.


AFAIK, poll exist in each *nix implementation as a generic (i.e. legacy) method which is not as fast as system dependant and effective methods like epoll and kqueue. For Linux glusterfs has support for epoll but in FreeBSD it doesn't support kqueue. It's not fair. 

Let me clarify a little bit why I'm asking all these questions. When a typical system administrator is going to build a new cluster environment, he do some research about the best way to implement the required functionality. In case glusterfs doesn't support effective methods like aio and kqueue in FreeBSD, he will prefer to build an environment on a Linux platform. Or he will build on FreeBSD but without glusterfs use any other similar solution. Both ways are not so good. I'm not a fanatic of Linux or FreeBSD. My approach is to use the most effective "tool" for each task. Of course all that 's written above is only my opinion as a system administrator with the same upcoming research and task to build an HA cluster in our project.

If I'm wrong somewhere - please feel free to correct me.

Thanks.


----------



## NewGuy (Jun 23, 2014)

In a testimony to just how awkward FreeBSD ports can be, I tried out the above port and could not get it to work in a clean environment. GlusterFS builds fine if I install the dependencies manually, but building from the port didn't work. I think the problem is the port requires autotools and the ports system doesn't build/install these until after the configuration step, which needs to come after autotools are used. So, basically, the ports system executes steps in the wrong order. I played around with the ordering a bit, but in the end it is just so much easier to build manually. Maybe the GlusterFS project will offer FreeBSD packages in the future rather than relying on the official ports tree?

For some reason, the latest ports snapshot I downloaded is also missing the tar.mk file, which was included the last time I downloaded the ports tree. This strikes me as strange as it meant no ports with the tar USES flag would build. I was able to import the tar.mk file from another machine, but I'm curious as to why it was missing in the first place.


----------



## wblock@ (Jun 23, 2014)

It's not too surprising that a two-day old port might have some teething problems.  Documenting them and either entering a PR (shiny new Bugzilla) or corresponding with the port maintainer is important.  Otherwise, those problems often persist.


----------



## JustinClift (Jun 24, 2014)

So, some developing stuff... 

Jordan Hubbard added a port, using a later tarball snapshot, to the FreeNAS Git repository here: https://github.com/freenas/ports/commit ... 80c66ae18e. The tarball that one uses _should_ be a bunch better. It fixes a crashing bug in the FUSE layer, and fixes a bug in the mount() arguments.

Are you guys able to make use of that FreeNAS port?


----------



## JustinClift (Jun 24, 2014)

ironudjin said:
			
		

> Let me clarify a little bit why I'm asking all these questions. When typical system administrator going to build new cluster environment, he do some research about the best way to implement required functionality. In case glusterfs doesn't support effective methods like aio and kqueue in FreeBSD, he will prefer to build environment on Linux platform. Or he will build on FreeBSD but without glusterfs use any other similar solution. Both ways are not so good. I'm not a fanatic of Linux or FreeBSD. My approach is to use the most effective "tool" for each task.



Sure, there's nothing wrong with that thinking.

But also, we have to start somewhere.   What generally happens with new-platform-support for open source software, is something like this:

Someone gets it kind of working, and tells other people how to make it work too.
Someone with more knowledge improves things further, so more people can use it in a much easier fashion.
Someone with more a demanding situation wants to use it, but it's not quite right for them.  That person takes the time to "fix it" so that it works in the demanding situation as well (and contributes the fix to the main project).

So, we're kind of at stage a) or b) at the moment.  To get the better performance stuff happening, it'll probably take some c)'s


----------



## ironudjin (Jun 26, 2014)

JustinClift said:
			
		

> But also, we have to start somewhere.


Yes, I agree. I'm glad to see that the glusterfs community pay attention to support FreeBSD. I hope we'll have glusterfs functionality under FreeBSD not worse than in other OSes. But of course not right now.


----------



## JustinClift (Jun 30, 2014)

As a data point, this is continuing on the freebsd-fs mailing list. The starting message is here: http://lists.freebsd.org/pipermail/free ... 19669.html (getting kind of long) A new tarball posted message is here: http://lists.freebsd.org/pipermail/free ... 19704.html.

Hope that's useful.


----------



## freebsd (Jul 22, 2014)

Can I ask some questions?

What is the difference between glusterfs-freebsd and glusterfs-3.5.1 versions of GlusterFS?
And is this version (glusterfs-freebsd) stable?
Thank you.


----------



## JustinClift (Aug 13, 2014)

freebsd said:
			
		

> Can I ask some questions?
> 
> What is the difference between glusterfs-freebsd and glusterfs-3.5.1 versions of GlusterFS?
> And is this version (glusterfs-freebsd) stable?
> Thank you.



Apologies for the delay, I didn't see this until now.

The glusterfs-freebsd file is a snapshot of the latest GlusterFS development code, where we are adding FreeBSD support. The early snapshot tarballs had patches (under development) that weren't yet merged into the main GlusterFS code base. The later snapshot tarballs are (from what I know) the main codebase itself, which has had the FreeBSD support merged in. We're still improving things too, fixing bugs that show up, getting everything more solid/reliable, and so on.

This is because we're aiming to have FreeBSD fully supported in the next major GlusterFS release, version 3.6.0. The 3.5.1 version you mention above doesn't officially support FreeBSD, and I kind of doubt it would actually work very well, if at all.  

For the "is this version (glusterfs-freebsd) stable?" question, I'd say probably not. Definitely don't put production data on it.   It could have bugs in it from the FreeBSD work being done, but it's also extremely likely to have bugs in it from the general GlusterFS 3.6 development work going on. Things should be in a much more stable/reliable state closer to our 3.6.0 release. Though from past experience I'd suggest waiting until the .1 or .2 releases after that before putting critical data on it.

Hopefully that helps.


----------



## rmahangoe (Sep 12, 2014)

I've installed GlusterFS on my FreeBSD 10-RELEASE storage.

Needed FreeBSD packages:

`pkg install automake libtool git bash bison autotools fuse-utils libexecinfo`
I had to install cmockery2 from the ports: `cd /usr/port/sysutils/cmockery2 && make install clean`

Latest version of GlusterFS: http://download.gluster.org/pub/gluster/experimental/.

Start building GlusterFS:

Extract the tar file: `tar -xz glusterfs-3.7dev-xxxx.tar.gz` followed by `cd glusterfs`.
Run autogen to check all dependencies: `./autogen.sh`.

After you have installed all the missing dependencies you’ll be able to do:

without the glusterfs client:
`./configure`
`make`
`make install`
`make clean`
with the glusterfs client:
`./configure -enable-fuse-client`
`make` 
`make install`
`make clean`

I'm missing only a startup/boot script. If someone could help me with that..


----------



## JustinClift (Oct 1, 2014)

As a data point, GlusterFS 3.6.0 beta3 (tarball) has been released now too. http://bits.gluster.org/pub/gluster/glu ... ta3.tar.gz. Everyone who has time, please test/try it out and report back any bugs.


----------



## rmahangoe (Oct 13, 2014)

During the `./configure` process it gives me an error.

```
./configure: 12727: Syntax error: word unexpected (expecting ")")
```


----------



## JustinClift (Oct 14, 2014)

rmahangoe said:
			
		

> During the ./configure process it gives me a error.
> 
> 
> ```
> ...



Interesting.  It's obviously not supposed to do that. 

I've emailed Harsha about this, and CC'd you on the email, so we'll see what he says.

Hopefully it's something simple, as FreeBSD (in general) is known to compile okay.  We have a FreeBSD 10 VM setup in Rackspace that runs a basic smoke test (just `./configure; make` so far) for every proposed GlusterFS patch, and every commit in GlusterFS Git: http://build.gluster.org/job/freebsd-smoke/.


----------



## manas (Oct 23, 2014)

I look forward to testing this, I have been looking for a nice distributed file system to use.


----------



## JustinClift (Oct 31, 2014)

As a thought, Craig Butler (Twitter @bsdtec) has volunteered to become the FreeBSD port maintainer for GlusterFS. This is the in-process port, if you have time to test it and provide feedback (in the ticket). https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=194409


----------



## Furious Tide Of Light (Nov 7, 2014)

Hi,

Any update on the configure error? I'm seeing:

```
./configure: 13183: Syntax error: word unexpected (expecting ")")
```

autogen.sh is clean, and I'm using glusterfs-3.6.0beta3.tar and FreeBSD 10.0-RELEASE-p12.


----------



## Furious Tide Of Light (Nov 9, 2014)

Ok, using 3.6.1, `./configure` works, but `make` gives:

```
Making all in src

  CC     cdc.lo

libtool: compile: can not build a shared library

libtool: compile: See the libtool documentation for more information.

libtool: compile: Fatal configuration error.

*** Error code 1


Stop.

make[5]: stopped in /root/glusterfs-3.6.1/xlators/features/compress/src

*** Error code 1


Stop.

make[4]: stopped in /root/glusterfs-3.6.1/xlators/features/compress

*** Error code 1


Stop.

make[3]: stopped in /root/glusterfs-3.6.1/xlators/features

*** Error code 1


Stop.

make[2]: stopped in /root/glusterfs-3.6.1/xlators

*** Error code 1


Stop.

make[1]: stopped in /root/glusterfs-3.6.1

*** Error code 1


Stop.

make: stopped in /root/glusterfs-3.6.1
```


----------



## Furious Tide Of Light (Nov 12, 2014)

Using the following, `make` seems to work. More testing will follow: `./configure --host=x86_64-unknown-freebsd`.


----------



## JustinClift (Nov 13, 2014)

Awesome.  Are you using the port that's in development by @bsdtec, or doing it manually?


----------



## JustinClift (Nov 13, 2014)

This one: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=194409


----------



## Sordid (Feb 15, 2015)

Furious Tide Of Light said:


> Hi,
> 
> Any update on the configure error? I'm seeing:
> 
> ...



I just installed FreeBSD 10.1 amd64 from scratch into a VM to test this, using glusterfs-3.6.2. I was getting the same error on a different line - it appears to be because pkg-config (devel/pkgconf) isn't installed.

After installing it, the configure step worked and it compiled fine, with just a few warnings. These are the dependencies I found from a fresh install required to build from scratch (excluding their own dependencies of course):

devel/automake

devel/libtool
devel/pkgconf
lang/python
devel/bison
Hoping to install this on bare metal in the next couple of weeks and see how it performs


----------



## m4r1n (Feb 18, 2015)

Hi,

I successfully built Gluster 3.6.2 on a fresh FreeBSD 10.1-RELEASE amd64 Hyper-V VM. I'll try to find some time to build two more Gluster hosts and make some tests. I have two servers here which aren't in use: I may try Gluster on bare metal too if everything is OK. I'll tell you more in a few days.

Thanks for your work!

Marin.


----------



## m4r1n (Feb 21, 2015)

Hi again,

I have built GlusterFS 3.6.2 on 3 virtual hosts running FreeBSD 10.1-RELEASE for amd64.

I added glusterd_enable="YES" to /etc/rc.conf, but the daemon won't start.

It first complains about a missing RDMA transport module, so I removed RDMA as a transport option from /usr/local/etc/glusterfs/glusterd.vol.

Then there is an issue with the "Geo-Replication module not working as desired". I made some research and it seems to be a Python-related problem. People experienced problems running Gluster on hosts where Python was missing. Yet my host has lang/python27 2.7.9 and devel/valgrind 3.8.1 installed. Here is the full debug output from glusterd:


```
root@nice-vsrv-gfs-01:/usr/home/marin # glusterd --debug
[2015-02-21 12:52:50.708426] I [MSGID: 100030] [glusterfsd.c:2018:main] 0-glusterd: Started running glusterd version 3.6.2 (args: glusterd --debug)
[2015-02-21 12:52:50.708490] D [logging.c:1763:__gf_log_inject_timer_event] 0-logging-infra: Starting timer now. Timeout = 120, current buf size = 5
[2015-02-21 12:52:50.717832] D [MSGID: 0] [glusterfsd.c:613:get_volfp] 0-glusterfsd: loading volume file /usr/local/etc/glusterfs/glusterd.vol
[2015-02-21 12:52:50.720121] I [glusterd.c:1214:init] 0-management: Maximum allowed open file descriptors set to 65536
[2015-02-21 12:52:50.720183] I [glusterd.c:1259:init] 0-management: Using /var/db/glusterd as working directory
[2015-02-21 12:52:50.720258] D [glusterd.c:391:glusterd_rpcsvc_options_build] 0-: listen-backlog value: 128
[2015-02-21 12:52:50.720355] D [rpcsvc.c:2198:rpcsvc_init] 0-rpc-service: RPC service inited.
[2015-02-21 12:52:50.720374] D [rpcsvc.c:1801:rpcsvc_program_register] 0-rpc-service: New program registered: GF-DUMP, Num: 123451501, Ver: 1, Port: 0
[2015-02-21 12:52:50.720401] D [rpc-transport.c:262:rpc_transport_load] 0-rpc-transport: attempt to load file /usr/local/lib/glusterfs/3.6.2/rpc-transport/socket.so
[2015-02-21 12:52:50.721089] D [socket.c:3799:socket_init] 0-socket.management: SSL support on the I/O path is NOT enabled
[2015-02-21 12:52:50.721131] D [socket.c:3802:socket_init] 0-socket.management: SSL support for glusterd is NOT enabled
[2015-02-21 12:52:50.721139] D [socket.c:3819:socket_init] 0-socket.management: using system polling thread
[2015-02-21 12:52:50.721150] D [name.c:550:server_fill_address_family] 0-socket.management: option address-family not specified, defaulting to inet
[2015-02-21 12:52:50.721183] D [rpcsvc.c:1801:rpcsvc_program_register] 0-rpc-service: New program registered: GlusterD svc peer, Num: 1238437, Ver: 2, Port: 0
[2015-02-21 12:52:50.721197] D [rpcsvc.c:1801:rpcsvc_program_register] 0-rpc-service: New program registered: GlusterD svc cli read-only, Num: 1238463, Ver: 2, Port: 0
[2015-02-21 12:52:50.721204] D [rpcsvc.c:1801:rpcsvc_program_register] 0-rpc-service: New program registered: GlusterD svc mgmt, Num: 1238433, Ver: 2, Port: 0
[2015-02-21 12:52:50.721211] D [rpcsvc.c:1801:rpcsvc_program_register] 0-rpc-service: New program registered: GlusterD svc mgmt v3, Num: 1238433, Ver: 3, Port: 0
[2015-02-21 12:52:50.721217] D [rpcsvc.c:1801:rpcsvc_program_register] 0-rpc-service: New program registered: Gluster Portmap, Num: 34123456, Ver: 1, Port: 0
[2015-02-21 12:52:50.721224] D [rpcsvc.c:1801:rpcsvc_program_register] 0-rpc-service: New program registered: Gluster Handshake, Num: 14398633, Ver: 2, Port: 0
[2015-02-21 12:52:50.721230] D [rpcsvc.c:1801:rpcsvc_program_register] 0-rpc-service: New program registered: Gluster MGMT Handshake, Num: 1239873, Ver: 1, Port: 0
[2015-02-21 12:52:50.721270] D [rpcsvc.c:2198:rpcsvc_init] 0-rpc-service: RPC service inited.
[2015-02-21 12:52:50.721283] D [rpcsvc.c:1801:rpcsvc_program_register] 0-rpc-service: New program registered: GF-DUMP, Num: 123451501, Ver: 1, Port: 0
[2015-02-21 12:52:50.721295] D [rpc-transport.c:262:rpc_transport_load] 0-rpc-transport: attempt to load file /usr/local/lib/glusterfs/3.6.2/rpc-transport/socket.so
[2015-02-21 12:52:50.721321] D [socket.c:3684:socket_init] 0-socket.management: disabling nodelay
[2015-02-21 12:52:50.721336] D [socket.c:3799:socket_init] 0-socket.management: SSL support on the I/O path is NOT enabled
[2015-02-21 12:52:50.721342] D [socket.c:3802:socket_init] 0-socket.management: SSL support for glusterd is NOT enabled
[2015-02-21 12:52:50.721347] D [socket.c:3819:socket_init] 0-socket.management: using system polling thread
[2015-02-21 12:52:50.721484] D [rpcsvc.c:1801:rpcsvc_program_register] 0-rpc-service: New program registered: GlusterD svc cli, Num: 1238463, Ver: 2, Port: 0
[2015-02-21 12:52:50.721514] D [rpcsvc.c:1801:rpcsvc_program_register] 0-rpc-service: New program registered: Gluster Handshake (CLI Getspec), Num: 14398633, Ver: 2, Port: 0
[2015-02-21 12:52:50.721538] D [glusterd-utils.c:8288:glusterd_sm_tr_log_init] 0-: returning 0
[2015-02-21 12:52:50.721549] D [glusterd.c:1484:init] 0-management: cannot get run-with-valgrind value
Traceback (most recent call last):
  File "/usr/local/libexec/glusterfs/python/syncdaemon/gsyncd.py", line 33, in <module>
  import resource
  File "/usr/local/libexec/glusterfs/python/syncdaemon/resource.py", line 26, in <module>
  from errno import EEXIST, ENOENT, ENODATA, ENOTDIR, ELOOP
ImportError: cannot import name ENODATA
[2015-02-21 12:52:50.787399] E [glusterd.c:436:glusterd_check_gsync_present] 0-glusterd: geo-replication module not working as desired
[2015-02-21 12:52:50.787846] D [glusterd.c:446:glusterd_check_gsync_present] 0-glusterd: Returning -1
[2015-02-21 12:52:50.787886] E [xlator.c:425:xlator_init] 0-management: Initialization of volume 'management' failed, review your volfile again
[2015-02-21 12:52:50.787898] E [graph.c:322:glusterfs_graph_init] 0-management: initializing translator failed
[2015-02-21 12:52:50.787904] E [graph.c:525:glusterfs_graph_activate] 0-graph: init failed
[2015-02-21 12:52:50.788024] D [logging.c:1740:gf_log_flush_extra_msgs] 0-logging-infra: Log buffer size reduced. About to flush 2 extra log messages
[2015-02-21 12:52:50.788044] D [logging.c:1743:gf_log_flush_extra_msgs] 0-logging-infra: Just flushed 2 extra log messages
[2015-02-21 12:52:50.788283] W [MSGID: 100032] [glusterfsd.c:1194:cleanup_and_exit] 0-: received signum (0), shutting down
[2015-02-21 12:52:50.788306] D [glusterfsd-mgmt.c:2244:glusterfs_mgmt_pmap_signout] 0-fsd-mgmt: portmapper signout arguments not given
```

So far, I've been unable to start the `glusterd` on any node. Any idea ?

Thanks!


----------



## yggdrasil (Feb 21, 2015)

Apparently the errno-library that comes with python (2 and 3!) on FreeBSD doesn't have ENODATA, although it should according to documentation (https://docs.python.org/2/library/errno.html). This might be a bug in FreeBSD's python port, maybe ask the maintainer.


----------



## m4r1n (Feb 21, 2015)

In fact ENODATA doesn't exist in FreeBSD. ENOMSG should be used instead. It seems the port needs to be patched again.


----------



## da1 (Mar 16, 2015)

Hi,

FreeBSD 10.0 amd64 as guest in VMWare Workstation (host: win 8.1 x64). Autogen works but configure gives:


```
root@:~/glusterfs-3.6.2 # ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... ./install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... nawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking build system type... x86_64-unknown-freebsd10.0
checking host system type... x86_64-unknown-freebsd10.0
checking for gcc... no
checking for cc... cc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether cc accepts -g... yes
checking for cc option to accept ISO C89... none needed
checking whether cc understands -c and -o together... yes
checking for style of include used by make... GNU
checking dependency style of cc... gcc3
checking how to print strings... printf
checking for a sed that does not truncate output... /usr/bin/sed
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for fgrep... /usr/bin/grep -F
checking for ld used by cc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 196608
checking how to convert x86_64-unknown-freebsd10.0 file names to x86_64-unknown-freebsd10.0 format... func_convert_file_noop
checking how to convert x86_64-unknown-freebsd10.0 file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... no
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from cc object... ok
checking for sysroot... no
checking for a working dd... /bin/dd
checking how to truncate binary pipes... /bin/dd bs=4096 count=1
checking for mt... mt
checking if mt is a manifest tool... no
checking how to run the C preprocessor... cc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if cc supports -fno-rtti -fno-exceptions... yes
checking for cc option to produce PIC... -fPIC -DPIC
checking if cc PIC flag -fPIC -DPIC works... yes
checking if cc static flag -static works... yes
checking if cc supports -c -o file.o... yes
checking if cc supports -c -o file.o... (cached) yes
checking whether the cc linker (/usr/bin/ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... freebsd10.0 ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking for rpcgen... yes
checking for flex... flex
checking lex output file root... lex.yy
checking lex library... -lfl
checking whether yytext is a pointer... yes
checking size of short... 2
checking size of int... 4
checking size of long... 8
checking size of long long... 8
checking for bison... bison -y
checking for ld... /usr/bin/ld
checking for MD5 in -lcrypto... yes
checking for pthread_mutex_init in -lpthread... yes
checking for dlopen... yes
checking for rl_do_undo in -lreadline... yes
checking for gettext in -lintl... no
checking xmmintrin.h usability... yes
checking xmmintrin.h presence... yes
checking for xmmintrin.h... yes
checking sys/xattr.h usability... no
checking sys/xattr.h presence... no
checking for sys/xattr.h... no
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking sys/extattr.h usability... yes
checking sys/extattr.h presence... yes
checking for sys/extattr.h... yes
checking openssl/md5.h usability... yes
checking openssl/md5.h presence... yes
checking for openssl/md5.h... yes
checking linux/falloc.h usability... no
checking linux/falloc.h presence... no
checking for linux/falloc.h... no
checking for pthread_spin_init... yes
checking for strnlen... yes
checking for setfsuid... no
checking for setfsgid... no
checking for umount2... no
checking for lvm_init,lvm_lv_from_name in -llvm2app... no
checking openssl/cmac.h usability... yes
checking openssl/cmac.h presence... yes
checking for openssl/cmac.h... yes
./configure: 13577: Syntax error: word unexpected (expecting ")")
```

Same (identical) error for 3.6.3-beta1. I will try tomorrow on an ESX 5.5U2 with FreeBSD 10.1 amd64.


----------



## da1 (Mar 18, 2015)

Had the same errors on an ESX server too.


----------



## Blackknight (Apr 10, 2015)

I am getting a compiler error after running make with glusterfs-3.6.2.


```
CCLD   gluster
../../rpc/rpc-lib/src/.libs/libgfrpc.a(rpc-clnt.o): In function `xdr_serialize_glusterfs_auth':
/root/glusterfs-3.6.2/rpc/rpc-lib/src/rpc-clnt.c:1152: undefined reference to `xdr_auth_glusterfs_parms_v2'
collect2: error: ld returned 1 exit status
*** Error code 1

Stop.
make[3]: stopped in /root/glusterfs-3.6.2/cli/src
*** Error code 1
```
Does anybody know how to resolve this?  I am running FreeBSD 10.1-RELEASE on amd64.


----------



## DenisKatjuk (May 16, 2015)

Blackknight said:


> I am getting a compiler error after running make with glusterfs-3.6.2.
> 
> 
> ```
> ...


Had same problem - must run `autogen.sh` first


----------



## DenisKatjuk (May 16, 2015)

Hi all I successfully built glusterfs 3.6.3 and 3.7.0 on 64-bit 10.1-RELEASE-p9. However the fusermount won't build due absence of mntent.h header.

```
CC       fusermount.o
fusermount.c:29:10: fatal error: 'mntent.h' file not found
#include <mntent.h>
         ^
1 error generated.
*** Error code 1
```
So I built it without fusermount, ok. Now if I'm trying to mount it with allow_other option:
`mount_glusterfs -o acl,allow_other,log-file=/var/log/glusterfsmount.log,log-level=DEBUG host:filesystem /mnt`

```
Invalid option allow_other
```

Without allow_other option it mounts and works well, but I can access it only as user who mounted it, other receive:
`$ cd /mnt/`

```
-su: cd: /mnt/: Operation not permitted
```
I tried to set ACL-s , and chmod-ed mount point to 777 - no go.
Did anyone had same issue here?


----------



## Pellaeon Lin (May 28, 2015)

Hi all, how is the porting process going? in particular, which version is being ported?

I compiled GlusterFS master@19d7b609 , all worked well until I tried to start a volume:

```
[2015-05-28 14:27:39.093136] W [xlator.c:192:xlator_dynload] 0-xlator: /usr/local/lib/glusterfs/3.8dev/xlator/features/changelog.so:  Undefined symbol "changelog_select_event"
[2015-05-28 14:27:39.093183] E [graph.y:212:volume_type] 0-parser: Volume 'vietnam-changelog', line 30: type 'features/changelog' is not  valid or not found on this machine
```

Turns out to be clang being picky, you need to write "extern inline" instead of just "inline" for function definition in .c files, the patch is in the attachment, I'll file a bug report tomorrow.

I'll further test the features tomorrow, not sure if everything works.


----------



## tingo (Jun 23, 2015)

And `sysctl vfs.usermount` is 1 I guess? (It shouldn't matter in this case)

Does it help to change ownership of the mount point to your own user before mounting?

Sorry, then I am out of ideas.


----------



## Beastie7 (Oct 26, 2015)

Any update on this? Any plans for our own solution? I'm looking for some distributed stuff to play with.


----------



## Nick Evans (Dec 1, 2015)

There's been some movement here for anyone who's been waiting:

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=194409


----------



## Nick Evans (Dec 8, 2015)

So far the native gluster mounts have been fine. The next bit of fun: How to get Ganesha working on FreeBSD or how to get FreeBSD to export fuse mounts over NFS. The only thing I've found so far is using NFSv4 with an FSID on Linux, have not tried that on FreeBSD yet.

Edit:

It seems a bit overshadowed by the newer ganesha NFS implementations but gluster has a built in NFSv3 server that can be activated by doing the following:

* Enable FreeBSD's rpcbind(8) in rc.conf only.

* Set the following volume options in glusterfs, change IP addresses accordingly:
   - nfs.disable off
   - nfs.export-volumes on
   - nfs.rpc-auth-allow 192.168.100.*

* Restart glusterfsd on all nodes.


----------



## fahrulamri (Mar 30, 2016)

Hi folks,

I am newbie in FreeBSD. I am from Malaysia, where not many FreeBSD users here. Only meet Martin Wilke (miwi@freebsd.org) and Muhammad Moinur Rahman (bofh@freebsd.org) once.

By the way, I am stuck in getting glusterfs works in my virtual machine, just out of curiosity whether this glusterfs port really exist. To my disappointment, either port or package of glusterfs is nowhere to see.


```
root@gvm01:/usr/local/glusterfs-3.7.6 # pkg search glusterfs
root@gvm01:/usr/local/glusterfs-3.7.6 # pkg install glusterfs
Updating FreeBSD repository catalogue...
FreeBSD repository is up-to-date.
All repositories are up-to-date.
pkg: No packages available to install matching 'glusterfs' have been found in the repositories
```

The Virtual Machine build is FreeBSD 10.3 AMD64 which is running on VMware Workstation 11.


```
root@gvm01:/usr/local/glusterfs-3.7.6 # uname -a
FreeBSD gvm01 10.3-RELEASE FreeBSD 10.3-RELEASE #0 r297264: Fri Mar 25 02:10:02 UTC 2016     root@releng1.nyi.freebsd.org:/usr/obj/usr/src/sys/GENERIC  amd64
```

I then tried to install from the source but no to avail. Could anyone kindly point out what I have done, if I did it wrongly?


```
Making all in glusterfsd
Making all in src
  CC       glusterfsd.o
  CC       glusterfsd-mgmt.o
  CCLD     glusterfsd
glusterfsd.o: In function `parse_opts':
/usr/local/glusterfs-3.7.6/glusterfsd/src/glusterfsd.c:1199: undefined reference to `argp_failure'
/usr/local/glusterfs-3.7.6/glusterfsd/src/glusterfsd.c:1030: undefined reference to `argp_usage'
/usr/local/glusterfs-3.7.6/glusterfsd/src/glusterfsd.c:842: undefined reference to `argp_failure'
glusterfsd.o: In function `parse_cmdline':
/usr/local/glusterfs-3.7.6/glusterfsd/src/glusterfsd.c:1778: undefined reference to `argp_parse'
collect2: error: ld returned 1 exit status
*** Error code 1

Stop.
make[3]: stopped in /usr/local/glusterfs-3.7.6/glusterfsd/src
*** Error code 1

Stop.
make[2]: stopped in /usr/local/glusterfs-3.7.6/glusterfsd
*** Error code 1

Stop.
make[1]: stopped in /usr/local/glusterfs-3.7.6
*** Error code 1

Stop.
make: stopped in /usr/local/glusterfs-3.7.6
```


----------



## fahrulamri (Mar 30, 2016)

Hi folks again.

I tried to modify the glusterfsd.c at /usr/local/glusterfs-3.7.6/glusterfsd/src

---- adding #include <argp.h>


```
/*
   Copyright (c) 2006-2013 Red Hat, Inc. <http://www.redhat.com>
   This file is part of GlusterFS.

   This file is licensed to you under your choice of the GNU Lesser
   General Public License, version 3 or any later version (LGPLv3 or
   later), or the GNU General Public License, version 2 (GPLv2), in all
   cases as published by the Free Software Foundation.
*/
#include <argp.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <sys/resource.h>
#include <sys/file.h>
#include <sys/wait.h>
#include <netdb.h>
#include <signal.h>
#include <libgen.h>
#include <dlfcn.h>
```

I also modified Makefile.am at /usr/local/glusterfs-3.7.6/glusterfsd/src

--- adding -largp


```
glusterfsd_LDADD = $(top_builddir)/libglusterfs/src/libglusterfs.la \
        $(top_builddir)/rpc/rpc-lib/src/libgfrpc.la \
        $(top_builddir)/rpc/xdr/src/libgfxdr.la ${GF_LDADD} -largp
```

Then I tried invoking _make_ command, however, I got several warning messages. Please advise me. Thank you.


```
root@gvm01:/usr/local/glusterfs-3.7.6 # make
make  all-recursive
Making all in libglusterfs
Making all in src
make  all-am
Making all in src/gfdb
Making all in rpc
Making all in xdr
Making all in src
Making all in rpc-lib
Making all in src
Making all in rpc-transport
Making all in socket
Making all in src
Making all in api
Making all in src
Making all in examples
Making all in xlators
Making all in cluster
Making all in stripe
Making all in src
Making all in afr
Making all in src
Making all in dht
Making all in src
Making all in ec
Making all in src
Making all in storage
Making all in posix
Making all in src
Making all in protocol
Making all in auth
Making all in addr
Making all in src
Making all in login
Making all in src
Making all in client
Making all in src
Making all in server
Making all in src
Making all in performance
Making all in write-behind
Making all in src
Making all in read-ahead
Making all in src
Making all in readdir-ahead
Making all in src
Making all in io-threads
Making all in src
Making all in io-cache
Making all in src
Making all in symlink-cache
Making all in src
Making all in quick-read
Making all in src
Making all in md-cache
Making all in src
Making all in open-behind
Making all in src
Making all in debug
Making all in trace
Making all in src
Making all in error-gen
Making all in src
Making all in io-stats
Making all in src
Making all in features
Making all in locks
Making all in src
Making all in quota
Making all in src
Making all in read-only
Making all in src
Making all in mac-compat
Making all in src
Making all in quiesce
Making all in src
Making all in marker
Making all in src
Making all in index
Making all in src
Making all in barrier
Making all in src
Making all in arbiter
Making all in src
Making all in protect
Making all in src
Making all in compress
Making all in src
Making all in changelog
Making all in src
Making all in lib
Making all in src
Making all in changetimerecorder
Making all in src
Making all in ganesha
Making all in src
Making all in gfid-access
Making all in src
Making all in glupy
Making all in src
Making all in glupy
Making all in examples
Making all in qemu-block
Making all in src
Making all in upcall
Making all in src
Making all in snapview-client
Making all in src
Making all in snapview-server
Making all in src
Making all in trash
Making all in src
Making all in shard
Making all in src
Making all in bit-rot
Making all in src
Making all in stub
Making all in bitd
Making all in encryption
Making all in rot-13
Making all in src
Making all in crypt
Making all in src
Making all in mount
Making all in fuse
Making all in src
Making all in utils
Making all in nfs
Making all in server
Making all in src
Making all in mgmt
Making all in glusterd
Making all in src
Making all in system
Making all in posix-acl
Making all in src
Making all in playground
Making all in template
Making all in src
Making all in meta
Making all in src
Making all in glusterfsd
Making all in src
  CC       glusterfsd.o
  CCLD     glusterfsd
Making all in doc
Making all in extras
Making all in init.d
Making all in systemd
Making all in benchmarking
Making all in hook-scripts
Making all in add-brick
Making all in post
Making all in pre
Making all in set
Making all in post
Making all in start
Making all in post
Making all in stop
Making all in pre
Making all in reset
Making all in post
Making all in pre
Making all in ocf
Making all in LinuxRPM
To build RPMS run 'make glusterrpms'
Making all in ganesha
Making all in scripts
Making all in config
Making all in ocf
Making all in snap_scheduler
Making all in firewalld
Making all in cli
Making all in src
  CC       cli.o
  CC       registry.o
  CC       input.o
  CC       cli-cmd.o
  CC       cli-rl.o
  CC       cli-cmd-global.o
  CC       cli-cmd-volume.o
  CC       cli-cmd-peer.o
  CC       cli-rpc-ops.o
  CC       cli-cmd-parser.o
  CC       cli-cmd-system.o
  CC       cli-cmd-misc.o
  CC       cli-xml-output.o
  CC       cli-quotad-client.o
  CC       cli-cmd-snapshot.o
  CCLD     gluster
/usr/local/bin/ld: warning: libcrypto.so.7, needed by ../../libglusterfs/src/.libs/libglusterfs.so, may conflict with libcrypto.so.8
Making all in heal
Making all in src
  CC       glfs-heal.o
  CCLD     glfsheal
/usr/local/bin/ld: warning: libcrypto.so.7, needed by ../../libglusterfs/src/.libs/libglusterfs.so, may conflict with libcrypto.so.8
Making all in contrib/umountd
  CC       umountd-umountd.o
umountd.c: In function 'sanity_check':
umountd.c:58:25: warning: too many arguments for format [-Wformat-extra-args]
                         gf_log ("umountd", GF_LOG_ERROR,
                         ^
umountd.c:58:25: warning: too many arguments for format [-Wformat-extra-args]
umountd.c:72:17: warning: too many arguments for format [-Wformat-extra-args]
                 gf_log ("umountd", GF_LOG_ERROR,
                 ^
umountd.c:72:17: warning: too many arguments for format [-Wformat-extra-args]
umountd.c: In function 'umountd_async':
umountd.c:163:25: warning: too many arguments for format [-Wformat-extra-args]
                         gf_log ("umountd", GF_LOG_WARNING,
                         ^
umountd.c:163:25: warning: too many arguments for format [-Wformat-extra-args]
umountd.c:171:33: warning: format '%lld' expects argument of type 'long long int', but argument 2 has type 'dev_t' [-Wformat=]
                                 gf_log ("umountd", GF_LOG_INFO,
                                 ^
umountd.c:171:33: warning: format '%lld' expects argument of type 'long long int', but argument 3 has type '__dev_t' [-Wformat=]
umountd.c:171:33: warning: format '%lld' expects argument of type 'long long int', but argument 7 has type 'dev_t' [-Wformat=]
umountd.c:171:33: warning: format '%lld' expects argument of type 'long long int', but argument 8 has type '__dev_t' [-Wformat=]
  CCLD     umountd
Making all in tools
Making all in gfind_missing_files
  CC       gcrawler.o
gcrawler.c: In function 'dirjob_ret':
gcrawler.c:149:25: warning: format '%ld' expects argument of type 'long int', but argument 3 has type 'pthread_t' [-Wformat=]
                         terr ("Failed: %s (%d)\n", job->dirname, ret);
                         ^
gcrawler.c:151:25: warning: format '%ld' expects argument of type 'long int', but argument 3 has type 'pthread_t' [-Wformat=]
                         tdbg ("Finished: %s\n", job->dirname);
                         ^
gcrawler.c: In function 'xwork_pick':
gcrawler.c:242:33: warning: format '%ld' expects argument of type 'long int', but argument 3 has type 'pthread_t' [-Wformat=]
                                 tdbg ("Jobless. Terminating\n");
                                 ^
gcrawler.c: In function 'skip_stat':
gcrawler.c:292:17: warning: format '%ld' expects argument of type 'long int', but argument 3 has type 'pthread_t' [-Wformat=]
                 tdbg ("Directly adding directories under .glusterfs "
                 ^
gcrawler.c:299:25: warning: format '%ld' expects argument of type 'long int', but argument 3 has type 'pthread_t' [-Wformat=]
                         tdbg ("Directly adding directories under .glusterfs/XX "
                         ^
gcrawler.c: In function 'xworker_do_crawl':
gcrawler.c:326:9: warning: format '%ld' expects argument of type 'long int', but argument 3 has type 'pthread_t' [-Wformat=]
         tdbg ("Entering: %s\n", job->dirname);
         ^
gcrawler.c:330:17: warning: format '%ld' expects argument of type 'long int', but argument 3 has type 'pthread_t' [-Wformat=]
                 terr ("opendir failed on %s (%s)\n", job->dirname,
                 ^
gcrawler.c: In function 'xwork_fini':
gcrawler.c:427:17: warning: format '%ld' expects argument of type 'long int', but argument 3 has type 'pthread_t' [-Wformat=]
                 tdbg ("CThread id %ld returned %p\n",
                 ^
gcrawler.c:427:17: warning: format '%ld' expects argument of type 'long int', but argument 3 has type 'pthread_t' [-Wformat=]
gcrawler.c: In function 'xwork_init':
gcrawler.c:470:17: warning: format '%ld' expects argument of type 'long int', but argument 3 has type 'pthread_t' [-Wformat=]
                 tdbg ("Spawned crawler %d thread %ld\n", i,
                 ^
gcrawler.c:470:17: warning: format '%ld' expects argument of type 'long int', but argument 4 has type 'pthread_t' [-Wformat=]
gcrawler.c: In function 'xfind':
gcrawler.c:497:9: warning: format '%ld' expects argument of type 'long int', but argument 3 has type 'pthread_t' [-Wformat=]
         tdbg ("Working directory: %s\n", cwd);
         ^
  CCLD     gcrawler
Making all in glusterfind
Making all in src
```


----------



## ondra_knezour (Mar 30, 2016)

GlusterFS is available as the net/glusterfs port, which has been added about month ago. The packages for new releases are build from quarterly branches, so it just probably didn't make it there yet. You can either switch to the HEAD branch for the packages (search forum) or build it yourself from ports. Update your ports, `# cd /usr/ports/net/glusterfs && make install`.


----------



## fahrulamri (Mar 30, 2016)

Already update ports by using portupgrade -rac


```
root@gvm01:/usr/ports/net # portupgrade -rac
[Reading data from pkg(8) ... - 159 packages found - done]
[Gathering depends for devel/argp-standalone .................................... done]
[Gathering depends for accessibility/atk ........................................................................................................................................................................................ done]
[Gathering depends for devel/autoconf213 .... done]
[Gathering depends for devel/autotools ......... done]
[Gathering depends for shells/bash ..... done]
[Gathering depends for devel/binutils .......... done]
[Gathering depends for sysutils/cmockery2 .... done]
[Gathering depends for misc/compat6x  done]
[Gathering depends for x11/compositeproto .. done]
[Gathering depends for devel/cscope  done]
[Gathering depends for devel/ctags  done]
[Gathering depends for print/cups-client ............................................. done]
** Port marked as IGNORE: ftp/curl:
    GSSAPI_BASE is not compatible with OpenSSL from ports. Use other GSSAPI options or OpenSSL from base system
[Gathering depends for devel/cvsps  done]
[Gathering depends for x11/damageproto .. done]
[Gathering depends for databases/db5 . done]
[Gathering depends for x11-fonts/dejavu .............. done]
[Gathering depends for ports-mgmt/dialog4ports  done]
[Gathering depends for x11/dri2proto .. done]
[Gathering depends for x11-fonts/encodings .. done]
[Gathering depends for x11/fixesproto .. done]
[Gathering depends for x11-fonts/font-bh-ttf .................. done]
[Gathering depends for x11-fonts/font-misc-ethiopic ...... done]
[Gathering depends for x11-fonts/font-misc-meltho ...... done]
[Gathering depends for emulators/fuse-utils ........ done]
[Gathering depends for graphics/gbm .......................................................................................... done]
[Gathering depends for lang/gcc ............. done]
[Gathering depends for graphics/gdk-pixbuf2 ....................................... done]
[Gathering depends for devel/git .................................................................. done]
[Gathering depends for graphics/graphite2 .. done]
[Gathering depends for graphics/gtk-update-icon-cache ....................................................................................................... done]
[Gathering depends for x11-toolkits/gtk20 ........................... done]
[Gathering depends for sysutils/htop ...... done]
[Gathering depends for graphics/jpeg-turbo .. done]
[Gathering depends for graphics/libEGL ........................ done]
[Gathering depends for graphics/libGL ............................... done]
[Gathering depends for x11/libXpm ....... done]
[Gathering depends for x11/libXv ......... done]
[Gathering depends for x11/libXvMC ........ done]
[Gathering depends for devel/libedit  done]
[Gathering depends for devel/libexecinfo  done]
[Gathering depends for sysutils/liburcu  done]
[Gathering depends for textproc/libyaml  done]
[Gathering depends for emulators/linux_base-c6  done]
[Gathering depends for devel/llvm36 .... done]
[Gathering depends for lang/lua52 . done]
[Gathering depends for editors/nano ... done]
[Gathering depends for ports-mgmt/pkg  done]
[Gathering depends for ports-mgmt/portupgrade ......... done]
[Gathering depends for databases/sqlite3  done]
[Gathering depends for lang/tcl86  done]
[Gathering depends for editors/vim .................. done]
[Gathering depends for ftp/wget ........ done]
** Listing the failed packages (-:ignored / *:skipped / !:failed)
    - ftp/curl (marked as IGNORE)
```

Still, no net/glusterfs port available:


```
root@gvm01:/usr/ports/net # whereis glusterfs
glusterfs:
root@gvm01:/usr/ports/net #
```


----------



## ondra_knezour (Mar 30, 2016)

AFAIK the portupgrade only upgrades installed ports, but didn't update ports collection. You want to "refresh" yours /usr/ports using the portsnap utility, see link to the Handbook in my previous post.


----------



## fahrulamri (Mar 30, 2016)

My bad! I missed out the portsnap utility.

Thank you, ondra_knezour.

Yes, after invoking command _portsnap fetch extract_, the net/glusterfs port is available.


```
Building new INDEX files... done.
root@gvm01:/usr/local/glusterfs-3.7.6 # cd /usr/ports
root@gvm01:/usr/ports # whereis glusterfs
glusterfs: /usr/ports/net/glusterfs
```


----------



## KOSA (Dec 21, 2016)

Hello Folks,
Did you have problems with glusterfs client ?
I mean exactly : client does not refreshing files, but properly refreshing size of them.
Glusterfs from ports (3.7.6). Whan I mount gluster volume by NFS - all is OK.
Any suggestions ?


----------

