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

pre-built binaries in source: app/plugin/jira/plugin_* #8893

Closed
onlyjob opened this issue Jun 1, 2018 · 12 comments
Closed

pre-built binaries in source: app/plugin/jira/plugin_* #8893

onlyjob opened this issue Jun 1, 2018 · 12 comments
Assignees

Comments

@onlyjob
Copy link

onlyjob commented Jun 1, 2018

app/plugin/jira/plugin_* are pre-built binaries. It is a bad practice to commit pre-built files. Those files should be (re-)generated on build time.

@onlyjob
Copy link
Author

onlyjob commented Jun 1, 2018

Same applies for app/plugin/zoom/plugin_*.

@amyblais
Copy link
Member

amyblais commented Jun 7, 2018

Hi @onlyjob - I apologize as I missed this Issue somehow - I will have an engineer take a look at this soon.

@jwilander
Copy link
Member

Committing them hasn't caused any problems for us and it removes a build step that needs to be worried about as they are required for the Go code to compile. If it's causing issues for you or you have a good reason why we should remove them and add it as a build step instead, I'd love to hear it.

@onlyjob
Copy link
Author

onlyjob commented Jun 7, 2018

The problem is that your source distribution (tarball) is not pure source distribution.

This is not DFSG compliant. We have to throw away pre-built binaries and build everything from source in controlled environment. Since there is no straightforward way to build those plugins I just had to disable them...

@jwilander
Copy link
Member

You should be able to easily build them yourself using the source:

And packaging them like we do in our Makefile

https://github.com/mattermost/mattermost-server/blob/master/Makefile#L303

@onlyjob
Copy link
Author

onlyjob commented Jun 7, 2018

That describes current situation accurately yet the problem is presence of two large binary blobs committed to repository (not about how you make them). :)

@jwilander
Copy link
Member

I'm not sure I see how it's a problem, just throw away the included plugin bits and re-build them yourself as part of your build process. Is it just that you need the source for the plugins included in the distributions?

@onlyjob
Copy link
Author

onlyjob commented Jun 8, 2018

That's exactly what I will have to do if committing binaries to Vcs does not bother you...

@grundleborg
Copy link
Contributor

Hi @onlyjob . Thanks for reporting this and the other packaging/licensing related issues you have raised in other tickets. I'm a core developer at Mattermost and I'll be taking care of making sure these tickets get dealt with. I can't promise a quick resolution, particularly with the license issues as any changes will have to go through a bunch of people including lawyers, but I am hopeful that we can eventually bring all these tickets to a satisfactory conclusion that will keep the business and legal people here happy and also deal with the licensing and packaging concerns from a DFSG point of view.

On this issue specifically, we discussed this last week in our developers meeting and concluded that we should change this to remove the binary blobs from the mattermost-server repo and instead pull in the external plugin source repos as part of the build process. I think this change will address the issue fully, but please let me know if it doesn't. I can't promise an exact date by which it will happen but the decision has been agreed in the development team, so we will get it done.

@grundleborg grundleborg self-assigned this Jun 19, 2018
@onlyjob
Copy link
Author

onlyjob commented Jun 19, 2018

Thanks @grundleborg.

FYI download on build is ever worse because it is a privacy breach and a potential security issue... It should be possible to reproducibly build in the secure/offline environment.

If external repository should be available on build time then perhaps using git submodules might be an answer. The only minor problem with submodules is that you'll have to (manually) generate comprehensive source tarball instead of relying on github tar.gz export which doesn't include submodules.

@grundleborg
Copy link
Contributor

I think the plan is that building this repo will no longer include the plugins unless you also build them separately. However, we need to update our build server to build the plugins separately from source for the official release binaries.

@grundleborg
Copy link
Contributor

This has now been fixed. Pre-compiled plugins are no longer part of this source repository.

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

4 participants