Page MenuHomeFreeBSD

Add port net/samba48
AbandonedPublic

Authored by feld on Feb 13 2018, 2:51 PM.

Details

Reviewers
None
Summary

Add samba 4.8

I started this process because I really need a stable version of Samba
that supports the Apple extensions for TimeMachine backups. I previously
ran backported patches to Samba 4.6 but it was not fun because they
kept breaking.

Diff Detail

Repository
rP FreeBSD ports repository
Lint
No Linters Available
Unit
No Unit Test Coverage
Build Status
Buildable 15016
Build 15119: arc lint + arc unit

Event Timeline

I appreciate your effort and can understand your impatience to get desired functionality, but this is (almost) all plainly wrong. You deleting patches without evaluating what are they meant for, you alter ldb/ port so it gets incompatible with with samba46/ and samba47/, while there is ldb13/ exactly for this purpose, you introduce usage of GitHub, while the dist files are already on download.samba.org...

Also, you just thrown away dozen of patches that were added in the samba47/....

Please, just get some the patience and let things to be done properly and not just ad-hoc hack to get one particular feature in place.

I appreciate your effort and can understand your impatience to get desired functionality, but this is (almost) all plainly wrong. You deleting patches without evaluating what are they meant for,

That's not true. I did evaluate what the two deleted patches were for and the checked the src. The change was no longer needed.

you alter ldb/ port so it gets incompatible with with samba46/ and samba47/, while there is ldb13/ exactly for this purpose,

Yeah I didn't notice that version of the port. Not a big deal; easy to fix.

you introduce usage of GitHub, while the dist files are already on download.samba.org...

When I checked last night there was no Samba 4.8 distfile on download.samba.org. Where is it? Can you show me? It's not in here https://download.samba.org/pub/samba/

Also, you just thrown away dozen of patches that were added in the samba47/....

I cloned from samba46, not realizing we even had a port of samba47 as I've been running samba46 for a while.

Please, just get some the patience and let things to be done properly and not just ad-hoc hack to get one particular feature in place.

We could create a team and have multiple people involved instead of this being a port maintained by one developer. Let's collaborate.

Is there a reason why we have MANDOCS disabled by default? It seems to
be only a minor burden on the build itself.

This is pretty big changeset, can you give a summary, how this differs from the samba47/ besides bumping related ports versions?

As for the MANDOCS - what would be the point to build them if they are already supplied? From other side, to build them you need to install xsltproc and docbook-xsl, which has a huge dependencies list. The result is exactly the same - so why to heat the planet?

Regarding the team - I would appreciate help from the people who are actually working on Samba and are active contributors to the project or, at least, constantly contribute to the Samba port. So far I've seen only very few people who are constantly participating in the project from the FreeBSD side.

Out of curiosity I've checked the build of ldb 1.3.1 without the patch-buildtools__wafsamba__samba_autoconf.py. Obvi

Checking linker accepts ['-undefined', 'dynamic_lookup']                                        : yes
.....
cc: warning: argument unused during compilation: '-undefined dynamic_lookup' [-Wunused-command-line-argument]
[82/97] Linking default/pyldb.so
cc: warning: argument unused during compilation: '-undefined dynamic_lookup' [-Wunused-command-line-argument]

So, I don't know what made you think that it's redundant.

Out of curiosity I've checked the build of ldb 1.3.1 without the patch-buildtools__wafsamba__samba_autoconf.py. Obvi

Checking linker accepts ['-undefined', 'dynamic_lookup']                                        : yes
.....
cc: warning: argument unused during compilation: '-undefined dynamic_lookup' [-Wunused-command-line-argument]
[82/97] Linking default/pyldb.so
cc: warning: argument unused during compilation: '-undefined dynamic_lookup' [-Wunused-command-line-argument]

So, I don't know what made you think that it's redundant.

I think we're talking about different patches. You referred to that, I was thinking of a different patch that I had to delete when I was basing this on Samba 4.6

This is pretty big changeset, can you give a summary, how this differs from the samba47/ besides bumping related ports versions?

I don't have a changelog for Samba 4.8 right now other than they added vfs_fruit support and implemented FULLSYNC which is required for Apple Time Machine. Now you can have a Time Machine share that looks like this and it will Just Work^TM:

[my-timemachine]
path = /some/path
valid users = someone
kernel oplocks = none
kernel share modes = no
posix locking = no
vfs objects = catia fruit streams_xattr
ea support = yes
fruit:aaple = yes
fruit: time machine = yes

As for the MANDOCS - what would be the point to build them if they are already supplied? From other side, to build them you need to install xsltproc and docbook-xsl, which has a huge dependencies list. The result is exactly the same - so why to heat the planet?

I must have already had the deps built because it didn't take any time at all.

Regarding the team - I would appreciate help from the people who are actually working on Samba and are active contributors to the project or, at least, constantly contribute to the Samba port. So far I've seen only very few people who are constantly participating in the project from the FreeBSD side.

I'm sure if a team was created interested parties would join

The pkg-plist needs some love but otherwise things seem to be working correctly

databases/ldb/files/patch-buildtoolswafsambasamba_autoconf.py

This file was deleted.

I encourage you to get rid of the PYTHON_SITELIBDIR entires in the pkg-plist entirely. This approach would simplify things greatly for you:

post-install:
                                ${FIND} -s ${WRKSRC}/${STAGEDIR}/${PYTHON_SITELIBDIR}/samba -type f | \
                                        ${SED} -e 's#^${STAGEDIR}${PREFIX}/##' >> ${TMPPLIST}

Using this locally is working great, but I haven't tested with your build that uses python2 and python3 at the same time. It will need another FIND to solve it I think, but it's pretty simple.

fwiw net/samba48 has been in the ports tree since r465492 Sun Mar 25 00:34:28 2018 UTC.