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

Add philosophy/principles #16

Closed
raisjn opened this issue Sep 7, 2020 · 11 comments
Closed

Add philosophy/principles #16

raisjn opened this issue Sep 7, 2020 · 11 comments
Labels
documentation Improvements or additions to the documentation and to workflows

Comments

@raisjn
Copy link
Contributor

raisjn commented Sep 7, 2020

there are a few principled decisions about the repo that should be made clear / explicit in the repository's README. i'm thinking about things like:

  • only free (with free software licenses) software
  • the repo is aiming to build software without relying on rm's toolchain so all packages should build without it
  • ???
@raisjn raisjn added the documentation Improvements or additions to the documentation and to workflows label Sep 7, 2020
@matteodelabre
Copy link
Member

@matteodelabre matteodelabre changed the title docs: add philosophy / principles to README Add philosophy/principles Sep 8, 2020
@matteodelabre matteodelabre mentioned this issue Sep 8, 2020
11 tasks
@Eeems
Copy link
Member

Eeems commented Sep 8, 2020

Lets make sure to document the "Why?" as well as the "What?" when documenting the philosophy/principles. I'd specifically like to fully understand the "Why?" on the following:

the repo is aiming to build software without relying on rm's toolchain so all packages should build without it

@matteodelabre
Copy link
Member

matteodelabre commented Sep 10, 2020

I do agree on the necessity to document the reason behind each principle. By the way, please feel free to suggest new principles or changes to them right now, as they will we harder to amend later on.

the repo is aiming to build software without relying on rm's toolchain so all packages should build without it

This fits in a wider principle of “We should be able to build all packages from source without relying on pre-built binaries”. The reasoning behind this guidance is to ensure the auditability of the packages. It’s hard to audit binaries, but less hard to audit source code. Auditing source code is sufficient as long as we can ensure that it matches the built binaries (see “Reproducible builds” principle higher in this thread).

The scope of this principle includes the toolchain that is used for building the packages (otherwise we need to trust yet another unauditable set of binaries). Unfortunately, it’s not possible to rebuild the exact same toolchain as provided by the reMarkable company, because its sources were not distributed. So, the Docker images aim at recreating a similar build environment which can itself be built from source.

A current limitation of this guidance is with the closed-source libqsgepaper Qt plugin that is distributed with the reMarkable toolchain. Since there’s no free equivalent of this library currently, we’re forced to use it as-is.

@Eeems
Copy link
Member

Eeems commented Sep 10, 2020

We should probably ask remarkable for the source of the toolchain, since most items in it are under GPL. We could at least get source/configs for enough of it to keep what we build close.

@raisjn
Copy link
Contributor Author

raisjn commented Sep 10, 2020

By the way, please feel free to suggest new principles or changes to them right now, as they will we harder to amend later on.

Things I think we should think about:

  • should there be a non-free repository?
  • do we prioritize software freedom or ease of use? i really think a statement should be taken on ease of use, because if this repo prioritizes software freedom, it might make it hard to create a nice end to end experience.
  • do we lean towards debian model of stability or archlinux model
  • how seriously do we take this effort?

@Eeems Eeems added this to the Community Rollout milestone Sep 23, 2020
@LinusCDE
Copy link
Member

  • should there be a non-free repository?

I find that a good idea. Might also be a way to safely incorporate the rm hacks which a lot of people use nowadays. That could also offer people who don't really care how they build their software to use the rM toolchain or other binaries of questionable source.

We could also add non opensource packages for e.g. template management or others could provide packages for their solutions that can't be checked well (example with the recent distro and the new tool). Looking at sourceforge being still a thing, I guess that many Windows or output focused developers who don't care about their source code or automatic building could add their software binaries there from their website or whatnot.

A question I would have is then, whether we do a nonfree-testing and nonfree-stable or have a common testing branch.

  • do we prioritize software freedom or ease of use? i really think a statement should be taken on ease of use, because if this repo prioritizes software freedom, it might make it hard to create a nice end to end experience.

I fully agree with our opinion on this. The package manager should enable an easy ecosystem especially for people who don't care about checking the origin of every line of source as long as they have access to fun mods and don't catch malware.

We should still try to encourage freedom, security, scruteny and so on, but ease of use should really be the first priority here. People who really care about the source can usually still build that project from source anyways. We should mainly distribute this software and not recompile everything without any exception. At the end most users won't care anyways.

  • do we lean towards debian model of stability or archlinux model

I'm pretty much torn on this one. I guess that comes back to how sophisticated we want the testing -> stable transition to be. I guess that makes this point another topic we already started elsewhere.

  • how seriously do we take this effort?

I would say: Best-effort community driven but no guarantees.

There will be packages that get dormant either because of lack of interest, no more releases from the dev or other reasons. We should strive to be as active as possible but don't make end users think that we "will be perfect".

Only time can tell.

@Eeems
Copy link
Member

Eeems commented Sep 23, 2020

There will be packages that get dormant either because of lack of interest, no more releases from the dev or other reasons. We should strive to be as active as possible but don't make end users think that we "will be perfect".

If we package something we should probably also put in place some sort of automation to open a task when a new release has been pushed for it. That would at least help us keep an eye on what needs to be done, and let others pick up on it.

@matteodelabre matteodelabre pinned this issue Sep 23, 2020
@matteodelabre
Copy link
Member

There will be packages that get dormant either because of lack of interest, no more releases from the dev or other reasons. We should strive to be as active as possible but don't make end users think that we "will be perfect".

If we package something we should probably also put in place some sort of automation to open a task when a new release has been pushed for it. That would at least help us keep an eye on what needs to be done, and let others pick up on it.

Agreed. I’m moving this suggestion to a separate issue.

@matteodelabre
Copy link
Member

  • should there be a non-free repository?

I find that a good idea. Might also be a way to safely incorporate the rm hacks which a lot of people use nowadays. That could also offer people who don't really care how they build their software to use the rM toolchain or other binaries of questionable source.

We could also add non opensource packages for e.g. template management or others could provide packages for their solutions that can't be checked well (example with the recent distro and the new tool). Looking at sourceforge being still a thing, I guess that many Windows or output focused developers who don't care about their source code or automatic building could add their software binaries there from their website or whatnot.

A question I would have is then, whether we do a nonfree-testing and nonfree-stable or have a common testing branch.

I’m not in favor of a non-free repository for now, for two reasons:

  • I don’t think we have enough contributors to maintain two separate repositories currently.
  • There’s no non-free software that I know of currently for the reMarkable, and I’d like to encourage it to stay this way.

We can always package the rM hacks safely by only distributing the binary patches. Anyway, making a non-free repository will not instantly enable us to redistribute xochitl, as we’d need to get an agreement with reMarkable AS first, which I doubt we’ll get. Is there a non-free template management tool that runs on the reMarkable?

  • do we prioritize software freedom or ease of use? i really think a statement should be taken on ease of use, because if this repo prioritizes software freedom, it might make it hard to create a nice end to end experience.

I fully agree with our opinion on this. The package manager should enable an easy ecosystem especially for people who don't care about checking the origin of every line of source as long as they have access to fun mods and don't catch malware.

We should still try to encourage freedom, security, scruteny and so on, but ease of use should really be the first priority here. People who really care about the source can usually still build that project from source anyways. We should mainly distribute this software and not recompile everything without any exception. At the end most users won't care anyways.

I don’t see where freedom conflicts with ease of use in this case. I think we should prioritize both.

  • how seriously do we take this effort?

I would say: Best-effort community driven but no guarantees.

There will be packages that get dormant either because of lack of interest, no more releases from the dev or other reasons. We should strive to be as active as possible but don't make end users think that we "will be perfect".

Only time can tell.

Agreed.

@raisjn
Copy link
Contributor Author

raisjn commented Oct 22, 2020

Can we close this issue? (Is the README or other place documenting free software principles enough?)

@raisjn
Copy link
Contributor Author

raisjn commented Jan 6, 2021

please open if you think this needs re-addressing

@raisjn raisjn closed this as completed Jan 6, 2021
@matteodelabre matteodelabre unpinned this issue Jan 6, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to the documentation and to workflows
Projects
None yet
Development

No branches or pull requests

4 participants