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

dcp385c-cupswrapper: init at 1.1.2 #367380

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

marcin-serwin
Copy link
Contributor

Add Brother DCP385c drivers from https://support.brother.com/g/b/producttop.aspx?c=us_ot&lang=en&prod=dcp385c_all

Things done

  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)
    • sandbox = relaxed
    • sandbox = true
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 25.05 Release Notes (or backporting 24.11 and 25.05 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
  • Fits CONTRIBUTING.md.

Add a 👍 reaction to pull requests you find important.

@github-actions github-actions bot added 6.topic: lib The Nixpkgs function library 8.has: maintainer-list (update) This PR changes `maintainers/maintainer-list.nix` labels Dec 22, 2024
@nix-owners nix-owners bot requested a review from alyssais December 22, 2024 14:12
@marcin-serwin marcin-serwin force-pushed the brother-dcp385c-drivers branch from 47f1bcf to 4048560 Compare December 22, 2024 14:15
@marcin-serwin marcin-serwin changed the title pkgs: add Brother DCP385c cups drivers dcp385-cupswrapper: init at 1.1.2 Dec 22, 2024
@marcin-serwin marcin-serwin changed the title dcp385-cupswrapper: init at 1.1.2 dcp385c-cupswrapper: init at 1.1.2 Dec 22, 2024
@marcin-serwin marcin-serwin force-pushed the brother-dcp385c-drivers branch 2 times, most recently from 37819cb to 5c4bc9e Compare December 22, 2024 14:17

meta = {
homepage = "https://git.sr.ht/~marcin-serwin/brprintconf";
description = "Decompiled source of brprintconf_dcp385c";
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure about having this in Nixpkgs — decompiled proprietary software is pretty legally dubious.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The EULA explicitly grants us the right to "modify, alter, translate or otherwise prepare derivative works of the Software and to reproduce and distribute [...] derivative works for any purpose." IANAL but I think decompilation should be covered by this.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, that's very interesting, and not at all what I want expecting from a EULA, although the presence of the GPL below might explain some things.

In that case, what was it about the EULA that you identified as non-free?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The drivers distributed under the EULA typically do not have their source code available and it states that the license should not "be construed as Brother's implied agreement or undertakings to disclose and/or distribute the source code of the Software."

Moreover there is no mention whether the user may sell the software, which is usually present in similar licenses, though perhaps "distribute" covers this.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The drivers distributed under the EULA typically do not have their source code available and it states that the license should not "be construed as Brother's implied agreement or undertakings to disclose and/or distribute the source code of the Software."

That's true, but is sort of orthogonal to license. I can license a binary under the MIT license without providing source code, and while that makes my software non-free, it doesn't make the MIT license a non-free license.

Moreover there is no mention whether the user may sell the software, which is usually present in similar licenses, though perhaps "distribute" covers this.

Hmm yeah, I'm not sure. Would be good to get another opinion.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's true, but is sort of orthogonal to license. I can license a binary under the MIT license without providing source code, and while that makes my software non-free, it doesn't make the MIT license a non-free license.

Yeah, I noticed that but, as I understand it, the nixpkgs ecosystem doesn't have a way to express the "freeness"/source availability of a given package irrespective of its license. The dcp385c-lpr is definitely non-free software but if we change the EULA to be a free license it will be marked as free.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It can additionally be marked with lib.licenses.unfree.

Copy link
Contributor Author

@marcin-serwin marcin-serwin Dec 22, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, but that just seems like a workaround to me since there are no unfree licenses present in the package. This would also be needed by nearly every package using this license since its purpose is to distribute proprietary software.

Personally, I'd rather leave it as unfree regardless of the unclear commercial rights. It's not approved by FSF or OSI and it will likely never be. We can add a comment near it which summarizes this conversation. If someone needs to override this then it's always possible to do brotherEula // { free = true; } and this will be less work than adding lib.licenses.unfree everywhere else.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm really not sure. I'd like to hear more opinions on what to do here.

@ofborg ofborg bot added 8.has: package (new) This PR adds a new package 10.rebuild-darwin: 1 labels Dec 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
6.topic: lib The Nixpkgs function library 8.has: maintainer-list (update) This PR changes `maintainers/maintainer-list.nix` 8.has: package (new) This PR adds a new package 10.rebuild-darwin: 1-10 10.rebuild-darwin: 1 10.rebuild-linux: 1-10
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants