>> If we didn’t want to trust any binaries built by someone else or
proprietary code, how much work would that be?

- Docker Notary (The Update Framework)
- PEP 458, PEP 480 (TUF)
- Host GPG .asc(s) for things you just found


## To build the whole toolchain yourself?
Build, Package, Install, Upgrade/Replace_with_new_container

- Makefile
- Conda-forge recipes with CI (meta.yaml, build.sh)
  - [x] platform / architecture compilation optimizations
  - [x] support for Windows (build.bat)
  - [x] support for Mac & Linux (build.sh)

- conda constructor
  - build an installer
- tar up the whole virtualenvwrapper virtualenv and unpack that into the
exact same path in a container
  - and check the .ASC


## To sign trusted releases:
- See: Warehouse & GPG, Wheel & signatures
- *The Update Framework*
  - There are plans to merge support for TUF (which is designed to
withstand package repo compromise) into Warehouse at some point, AFAIU.


TUF: The Update Framework
========================
| Wikipedia: https://en.wikipedia.org/wiki/The_Update_Framework_(TUF)
| Homepage: https://theupdateframework.github.io/
| Src: https://github.com/theupdateframework
| Spec:
https://github.com/theupdateframework/specification/blob/master/tuf-spec.md

- Docker Notary supports TUF
- TUF is mostly written in Python
- Python PEP458:
  - https://www.pypa.io/en/latest/roadmap/#pypi-integrate-tuf

- "PEP 458 -- Surviving a Compromise of PyPI"
https://www.python.org/dev/peps/pep-0458/";

- "PEP 480 -- Surviving a Compromise of PyPI: The Maximum Security Model"
https://www.python.org/dev/peps/pep-0480/

- https://github.com/pypa/pip/issues/1035
  "Implement "hook" support for package signature verification."


## To build native packages for your package and the whole toolchain?
- fpm
- release keys (note that any key in the ring can sign for any package)
- docker/kubernetes
- conda-forge (Appveyor, CircleCI, Travis CI)
  - OSX instances


fpm
=====
| Src: https://github.com/jordansissel/fpm
| Docs: https://fpm.readthedocs.io/en/latest/
| Docs: https://fpm.readthedocs.io/en/latest/source/virtualenv.html

- { deb, rpm, osxpkg, tar, }


## To host package repositories yourselves:

Pulp
=====
| Homepage: https://pulpproject.org/
| Src: https://github.com/pulp/


## To sign releases uploaded to e.g. GitHub (which are CDN'd, AFAIU):
- Wheel had a native signing mechanism that's since been removed
- [ ] Attach a GPG .asc signature to the GitHub release
  - https://wiki.debian.org/Creating%20signed%20GitHub%20releases


## To sign commits and merges:
- Configure a per-project GPG agent and keyring config
- Trust local datetimes
- Remember that `git push -f` can occur.


## Include SELinux filesystem labels with the package:
- This isn't possible with Python packaging (without extending setup.py
with a custom command with a build dependency or calling out to a shell
script that may be locatable with distutils.spawn.find_executable)

On Thu, Jul 26, 2018 at 1:41 PM Nathaniel Smith <n...@pobox.com> wrote:

> On Thu, Jul 26, 2018, 05:48 Ben Finney via Distutils-SIG <
> distutils-sig@python.org> wrote:
>
>> Brad Warren <b...@eff.org> writes:
>>
>> > Our main use case has been the long tail of individuals or small teams
>> > of sysadmins who maintain servers and need or want help and automation
>> > around maintaining a secure TLS configuration.
>>
>> For what it's worth, I certainly concur that most people in the group
>> you describe will thank you to not have a bundle of custom dependencies
>> from outside the OS repository, and instead make Certbot work with
>> (and/or be advocates to introduce) the dependencies as OS-provided
>> library packages.
>>
>
> I wonder if they have any user survey or anything that would speak to this.
>
> FWIW my impression is that the kinds of sysadmins who know enough to have
> opinions about packaging hygiene also know enough to set up one of
> certbot's many simpler, less magical competitors. Certbot's target audience
> has always been folks who didn't really understand any of this stuff and
> wanted to just hit a button and have things somehow work out by whatever
> means necessary. Which is great, those people deserve secure
> communications. But the point is that you can't make everything your number
> one priority, and when they have to choose, certbot has chosen to
> prioritize "make it work" over "fit nicely into a traditional distro", and
> I think that's the right decision for what they are.
>
> > This is definitely our preferred approach to building native packages
>> > right now. To be honest, no one on my team has any experience building
>> > .debs and .rpms and we’re happy to learn what we need to if we go with
>> > this approach, but the more reliable automation around the process we
>> > can use the better.
>>
>> For Debian, instead of becoming packaging experts yourselves, instead we
>> ask that you make Certbot easier for *us* to package and maintain in
>> Debian. See <URL:https://wiki.debian.org/UpstreamGuide>; other OS
>> projects likely have similar documentation.
>>
>
> That's a nice idea in principle and all, but see also
> https://wiki.debian.org/LetsEncrypt which cheerily notes that the version
> of certbot shipped in stretch is so old that it doesn't actually work, and
> as a workaround it recommends running a command that will take down the
> user's website without even warning that that's what it does.
>
> I love Debian. I've been a loyal user for twenty years. But Debian is
> really bad at coping with software that needs to react quickly to changing
> external conditions, or that depends on a tight feedback loop between users
> and developers. (Indeed, Debian's whole value-add is to insert themselves
> as a buffer between users and developers, which is great in some situations
> but terrible in others.)
>
> Maybe if certbot worked hard enough they could arrange to get special
> treatment like Firefox or clamav or something, but in their position I
> would see this as a total non-starter. Even if they did somehow manage to
> navigate Debian's politics, they'd still have to go and repeat the process
> for Redhat, SuSE, Ubuntu, Gentoo, ...
>
> -n
>
>> --
> Distutils-SIG mailing list -- distutils-sig@python.org
> To unsubscribe send an email to distutils-sig-le...@python.org
> https://mail.python.org/mm3/mailman3/lists/distutils-sig.python.org/
> Message archived at
> https://mail.python.org/mm3/archives/list/distutils-sig@python.org/message/EDCELE3LBN7LMUXF6FX4EYERX4I33ELL/
>
--
Distutils-SIG mailing list -- distutils-sig@python.org
To unsubscribe send an email to distutils-sig-le...@python.org
https://mail.python.org/mm3/mailman3/lists/distutils-sig.python.org/
Message archived at 
https://mail.python.org/mm3/archives/list/distutils-sig@python.org/message/SK66YOWDEE42KUDHDBSEESIC3O6XUIGQ/

Reply via email to