Changeset - a2f38653fb02
[Not reviewed]
0 55 0
Ben Sturmfels (bsturmfels) - 2 months ago 2024-07-22 08:39:05
ben@sturm.com.au
Fix trailing whitespace and missing end-of-file newline
55 files changed with 164 insertions and 187 deletions:
0 comments (0 inline, 0 general)
conservancy/blog/admin.py
Show inline comments
 
from django.contrib import admin
 

	
 
from .models import Entry, EntryTag
 

	
 

	
 
@admin.register(EntryTag)
 
class EntryTagAdmin(admin.ModelAdmin):
 
    prepopulated_fields = {'slug': ('label',)}
 

	
 

	
 

	
 
@admin.register(Entry)
 
class EntryAdmin(admin.ModelAdmin):
 
    list_display = ('pub_date', 'headline', 'author')
 
    list_filter = ['pub_date']
 
    date_hierarchy = 'pub_date'
 
    search_fields = ['headline', 'summary', 'body']
 
    prepopulated_fields = {'slug': ("headline",)}
 
    filter_horizontal = ('tags',)
 

	
 

	
conservancy/blog/views.py
Show inline comments
 
from datetime import datetime
 
from functools import reduce
 

	
 
from django.core.paginator import EmptyPage, PageNotAnInteger, Paginator
 
from django.shortcuts import get_object_or_404, render
 
from django.views.generic.dates import (
 
    DateDetailView,
 
    DayArchiveView,
 
    MonthArchiveView,
 
    YearArchiveView,
 
)
 

	
 
from ..staff.models import Person
 
from .models import EntryTag
 

	
 

	
 
def OR_filter(field_name, objs):
 
    from django.db.models import Q
 
    return reduce(lambda x, y: x | y,
 
                  [Q(**{field_name: x.id}) for x in objs])
 

	
 
def last_name(person):
 
    return person.formal_name.rpartition(' ')[2]
 

	
 
def custom_index(request, queryset, *args, **kwargs):
 
    """Blog list view that allows scrolling and also shows an index by
 
    year.
 
    """
 

	
 
    extra_context = kwargs.get('extra_context', {}).copy()
 
    date_field = kwargs['date_field']
 

	
 
    if not kwargs.get('allow_future', False):
 
        queryset = queryset.filter(**{'%s__lte' % date_field: datetime.now()})
 

	
 
    authors = []
 
    if 'author' in request.GET:
 
        authors = [get_object_or_404(Person, username=author)
 
                   for author in request.GET.getlist('author')]
 
        extra_context['authors'] = authors
 
        queryset = queryset.filter(OR_filter('author', authors))
 

	
 
    tags = []
 
    if 'tag' in request.GET:
 
        tags = [get_object_or_404(EntryTag, slug=tag)
 
                for tag in request.GET.getlist('tag')]
 
        extra_context['tags'] = tags
 
        queryset = queryset.filter(OR_filter('tags', tags))
 

	
 
    if authors or tags:
 
        query_string = '&'.join(['author=%s' % a.username for a in authors]
 
                                + ['tag=%s' % t.slug for t in tags])
 
        extra_context['query_string'] = query_string
 

	
 
    else:
 
        date_list = queryset.dates(date_field, 'year')
 
        extra_context['date_list'] = date_list
 

	
 
    paginate_by = kwargs.get('paginate_by', 6)  # Show 6 news items per page, by default
 
    paginator = Paginator(queryset, paginate_by)
 
    page = request.GET.get('page')
 

	
 
    try:
 
        blog_entries = paginator.page(page)
 
    except PageNotAnInteger:
 
        # If page is not an integer, deliver first page.
 
        blog_entries = paginator.page(1)
 
    except EmptyPage:
 
        # If page is out of range (e.g. 9999), deliver last page of results.
 
        blog_entries = paginator.page(paginator.num_pages)
 

	
 
    extra_context['blog_entries'] = blog_entries
 

	
 
    return render(request, 'blog/entry_list.html', extra_context)
 

	
 
def techblog_redirect(request):
 
    """Redirect from the old 'techblog' to the new blog
 
    """
 

	
 
    path = request.path[len('/technology'):]
 
    if path == '/blog/':
 
        path += "?author=bkuhn"
 

	
 
    return relative_redirect(request, path)
 

	
 
def query(request):
 
    """Page to query the blog based on authors and tags
 
    """
 

	
 
    if request.GET:
 
        d = request.GET.copy()
 
        if 'authors' in d.getlist('all'):
 
            d.setlist('author', []) # remove author queries
 
        if 'tags' in d.getlist('all'):
 
            d.setlist('tag', []) # remove tag queries
 
        d.setlist('all', []) # remove "all" from the query string
 

	
 
        base_url = '/blog/'
 
        if 'rss' in d:
 
            base_url = '/feeds/blog/'
 
            d.setlist('rss', []) # remove it
 

	
 
        query_string = d.urlencode()
 

	
 
        return relative_redirect(request, '{}{}{}'.format(base_url, '?' if query_string else '', query_string))
 

	
 
    else:
 
        authors = sorted(Person.objects.filter(currently_employed=True,
 
                                               entry__isnull=False).distinct(),
 
                         key=last_name)
 
        tags = EntryTag.objects.all().order_by('label')
 
        return render(request, 'blog/query.html', {'authors': authors, 'tags': tags})
 

	
 
def relative_redirect(request, path):
 
    from django import http
 

	
 
    host = request.get_host()
 

	
 
    url = "{}://{}{}".format(request.is_secure() and 'https' or 'http', host, path)
 
    return http.HttpResponseRedirect(url)
 

	
 
class BlogYearArchiveView(YearArchiveView):
 
    make_object_list = True
 
    allow_future = True
 
    extra_context = {}
 
    
 

 
    def get_context_data(self, **kwargs):
 
        context = super().get_context_data(**kwargs)
 
        context.update(self.extra_context)
 
        return context
 

	
 
class BlogMonthArchiveView(MonthArchiveView):
 
    allow_future = True
 
    extra_context = {}
 
    
 

 
    def get_context_data(self, **kwargs):
 
        context = super().get_context_data(**kwargs)
 
        context.update(self.extra_context)
 
        return context
 

	
 
class BlogDayArchiveView(DayArchiveView):
 
    allow_future = True
 
    extra_context = {}
 
    
 

 
    def get_context_data(self, **kwargs):
 
        context = super().get_context_data(**kwargs)
 
        context.update(self.extra_context)
 
        return context
 

	
 
class BlogDateDetailView(DateDetailView):
 
    allow_future = True
 
    extra_context = {}
 
    
 

 
    def get_context_data(self, **kwargs):
 
        context = super().get_context_data(**kwargs)
 
        context.update(self.extra_context)
 
        return context
conservancy/content/about/board/index.html
Show inline comments
 
{% extends "base_about.html" %}
 
{% block subtitle %}Directors - {% endblock %}
 
{% block submenuselection %}Directors{% endblock %}
 
{% block content %}
 

	
 
<h1>Directors</h1>
 

	
 
<p>Like many non-profits, Conservancy is directed by a
 
self-perpetuating Board of Directors, who
 
appoint the <a href="/about/staff/">Executive Director and staff</a> to carry out the
 
day-to-day operations of the organization.  The Directorship of the
 
Conservancy includes both talented non-profit managers and experienced
 
FLOSS project leaders who can both guide the administrative operations of
 
the organization as well as mentor member project leaders as needed.  Our
 
Directors constantly search for additional directors who can contribute a
 
variety of expertise and perspective related to the Conservancy's
 
mission.</p>
 

	
 
<p>Currently, the directors of Conservancy are:</p>
 

	
 
<h2 id="jeremy">Jeremy Allison</h2>
 

	
 
<p>Jeremy Allison is one of the lead developers on the Samba Team, a
 
group of programmers developing an Open Source Windows compatible file
 
and print server product for UNIX systems. Developed over the Internet
 
in a distributed manner similar to the Linux system, Samba is used by
 
all Linux distributions as well as many thousands of corporations and
 
products worldwide. Jeremy handles the co-ordination of Samba
 
development efforts and acts as a corporate liaison to companies using
 
the Samba code commercially.</p>
 

	
 
<p>He works for CIQ as a Distinguished Engineer, working on Open
 
Source code.</p>
 

	
 
<h2 id="laura">Dr. Laura Fortunato</h2>
 

	
 
<p><a href="http://www.santafe.edu/~fortunato/">Dr. Laura Fortunato</a>
 
is a professor of evolutionary anthropology at the University
 
of Oxford, where she researches the evolution of human social and
 
cultural behavior, working at the interface of anthropology and
 
biology. An advocate of reproducible computational methods in
 
research, including the use of Free/Open-Source tools, she founded the
 
<a href="https://rroxford.github.io/">Reproducible Research Oxford</a>
 
project, with the aim to foster a culture of reproducibility and open
 
research at Oxford.</p>
 

	
 
<p>Laura holds a degree in Biological Sciences from the University of
 
Padova and masters and PhD in Anthropology from University College
 
London. Before joining Oxford she was an Omidyar fellow at the <a
 
href="http://www.santafe.edu/">Santa Fe Institute</a>, where she is
 
currently an External Professor and a member of the Science Steering
 
Committee. She is also a member of the steering group of the <a
 
href="http://www.ukrn.org/">UK Reproducibility Network</a>, a peer-led
 
consortium that aims to promote robust research practice in the UK.</p>
 

	
 
<h2 id="mark">Dr. Mark Galassi</h2>
 

	
 
<p>Mark Galassi has been involved in the GNU project since 1984. He
 
currently works as a researcher in the International, Space, and Response
 
division at Los Alamos National Laboratory, where he has worked on the
 
HETE-2 satellite, ISIS/Genie, the Raptor telescope, the Swift satellite,
 
and the muon tomography project. In 1997 Mark took a couple of years off
 
from Los Alamos (where he was previously in the ISR division and the
 
Theoretical Astrophysics group) to work for Cygnus (now a part of Red Hat)
 
writing software and books for eCos, although he continued working on the
 
HETE-2 satellite (an astrophysical Gamma Ray Burst mission) part
 
time. Mark earned his BA in Physics at Reed College and a PhD from the
 
Institute for Theoretical Physics at Stony Brook. </p>
 

	
 
<h2 id="bdale">Bdale Garbee</h2>
 

	
 
<p><a href="https://gag.com/bdale/">Bdale Garbee</a> has been a contributor
 
to the Free Software community since 1979.  Bdale's background also includes
 
many years of hardware design, Unix internals, and embedded systems work.
 
He was an early participant in the Debian project, helped port Debian
 
GNU/Linux to 5 architectures, served as Debian Project Leader, then
 
chairman of the Debian Technical Committee for nearly a decade, and remains
 
active in the Debian community.</p>
 

	
 
<p>Bdale served as an HP Fellow in the Office of the CTO until 2016 where
 
he led HP's open source strategy work.  Bdale served as President of
 
Software in the Public Interest for a decade.  He served nearly as long on
 
the board of directors of the Linux Foundation representing individual
 
affiliates and the developer community.  Bdale currently serves on the
 
boards of the Freedombox Foundation, Linux Professional Institute, and
 
Aleph Objects.</p>
 

	
 
<h2 id="bkuhn">Bradley M. Kuhn</h2>
 

	
 
<p><a href="http://ebb.org/bkuhn/">Bradley M. Kuhn</a> is
 
the <a href="/about/staff/#bkuhn">Policy Fellow and Hacker-in-Residence</a>
 
at <a href="/">Software Freedom Conservancy</a> and editor-in-chief
 
of <a href="https://copyleft.org">copyleft.org</a>. Kuhn began his work in
 
the software freedom movement as a volunteer in 1992, when he became an early
 
adopter of Linux-based systems, and began contributing to various Free
 
Software projects, including Perl.  He worked during the 1990s as a system
 
administrator and software developer for various companies, and taught AP
 
Computer Science at Walnut Hills High School in Cincinnati.  Kuhn's
 
non-profit career began in 2000, when he was hired by the FSF.  As FSF's
 
Executive Director from 2001&ndash;2005, Kuhn
 
led <a href="https://www.fsf.org/licensing">FSF's GPL enforcement</a>,
 
launched <a href="https://www.fsf.org/associate/">its Associate Member
 
program</a>, and invented
 
the <a href="http://www.gnu.org/licenses/agpl-3.0.html">Affero GPL</a>.  Kuhn
 
was appointed President of Software Freedom Conservancy in April 2006, was
 
Conservancy's primary volunteer from 2006&ndash;2010, and has been a
 
full-time staffer since early 2011.  Kuhn holds a summa cum laude B.S. in
 
Computer Science
 
from <a href="http://www.loyola.edu/academic/computerscience">Loyola
 
University in Maryland</a>, and an M.S. in Computer Science from
 
the <a href="http://www.cs.uc.edu/">University of
 
Cincinnati</a>.  <a href="http://www.ebb.org/bkuhn/articles/thesis/">Kuhn's
 
Master's thesis</a> discussed methods for dynamic interoperability of Free
 
Software programming languages.  Kuhn received
 
the <a href="http://www.oscon.com/oscon2012/public/schedule/detail/25039">O'Reilly
 
Open Source Award in 2012</a>, in recognition for his lifelong policy work on
 
copyleft licensing.  Kuhn has <a href="http://ebb.org/bkuhn/blog/">a
 
blog</a> and co-hosts
 
the audcast, <a href="http://faif.us/"><cite>Free as in Freedom</cite></a>.</p>
 
  
 

 
<h2 id="allison">Dr. Allison Randal - Chair of the Board</h2>
 

	
 
<p> Over the course of multiple decades as a free software developer,
 
 Allison has worked in a wide variety of projects and domains, from
 
 games, linguistic analysis tools, websites, mobile apps, shipping
 
 fulfillment, and talking smart-home appliances, to programming language
 
 design, compilers, hypervisors, containers, deployment automation,
 
 database replication, operating systems and kernels, and hardware
 
 architectures and microarchitectures.</p>
 

	
 
<p>She is a board member at the Open Infrastructure Foundation, vice chair
 
 of the Microarchitecture Side Channels (Security) SIG at RISC-V
 
 International, and co-founder of the FLOSS Foundations group for free
 
 software community leaders. At various points in the past she has served
 
 as chair of the board at the Open Infrastructure Foundation, president
 
 and board member of the Open Source Initiative, president and board
 
 member of the Perl Foundation, board member of the Python Software
 
 Foundation, chair of the board at the Parrot Foundation, chief architect
 
 of the Parrot virtual machine, Open Source Evangelist at O’Reilly Media,
 
 conference chair of OSCON, Technical Architect of Ubuntu, Open Source
 
 Advisor at Canonical, Distinguished Technologist and Open Source
 
 Strategist at HP, and Distinguished Engineer at SUSE. She collaborates
 
 in the Debian and RISC-V projects, and currently works on free software
 
 and open hardware at Rivos.</p>
 

	
 
<h2 id="tony">Tony Sebro</h2>
 

	
 
<p>Tony currently serves as the Deputy General Counsel for
 
    the <a href="https://foundation.wikimedia.org/wiki/Home">Wikimedia
 
    Foundation</a>, where he manages the day-to-day operations of Wikimedia's
 
    legal department, and provide specific expertise on free and open source
 
    licensing, intellectual property, non-profit law, and privacy matters.
 
    Tony is also an organizer of
 
    Conservancy's <a href="https://outreachy.org">Outreachy</a> project,
 
    which provides paid internships in free and open source for people from
 
    groups traditionally underrepresented in tech.  Prior to joining
 
    Wikimedia, Tony served as General Counsel (and &ldquo;Employee #2&rdquo;)
 
    of Software Freedom Conservancy for over six years.  Tony has also spent
 
    time in the private sector with PCT Law Group and Kenyon &amp; Kenyon, and as
 
    an intellectual property licensing and business development professional
 
    with IBM.  Tony received an O'Reilly Open Source Award in 2017.  Tony is
 
    an active participant in and supporter of the non-profit community, and
 
    lives in the Bay Area with his family.</p>
 

	
 
{% endblock %}
conservancy/content/about/staff/index.html
Show inline comments
 
{% extends "base_about.html" %}
 
{% block subtitle %}Staff - {% endblock %}
 
{% block submenuselection %}Staff{% endblock %}
 
{% block content %}
 
<h1>Staff</h1>
 

	
 
<p>The staff are listed alphabetically by surname.</p>
 

	
 
<h2 id="dimesio">Rosanne DiMesio - Technical Bookkeeper</h2>
 

	
 
<p>Rosanne DiMesio is the Technical Bookkeeper at the Software Freedom
 
Conservancy where she handles incoming and outgoing accounting
 
activities for all its member projects as well as financial operations
 
for Conservancy itself. Rosanne has been volunteering with the Wine
 
Project since 2008 where she focuses on user support and documentation.
 
She has worked as an English teacher, a freelance writer and as IT
 
support. She is passionate about helping free software projects improve
 
their user experience. Rosanne received her Masters in Communication &amp;
 
Theater at the University of Illinois at Chicago and her Bachelor&rsquo;s
 
degree in English from the University of Chicago.</p>
 

	
 
<h2 id="denver">Denver Gingerich - Director of Compliance</h2>
 

	
 
<p>Denver manages SFC's license compliance work, including its technical parts
 
(such as triaging new reports and verifying complete corresponding source) as
 
well as planning and carrying out our enforcement strategy (with advice and
 
input from SFC's Executive Director and Policy Fellow).  Outside of SFC, Denver
 
also co-runs a FOSS business. Previously, Denver authored financial trading
 
software on Linux.  Denver writes free software in his spare time: his patches
 
have been accepted into Wine, Linux, and wdiff.  Denver received his BMath in
 
Computer Science from the University of Waterloo.  He gives presentations about
 
digital civil rights and how to ensure FOSS remains sustainable as a community
 
and financially, having spoken at conferences such as LinuxCon North America,
 
Texas Linux Fest, LibrePlanet, CopyCamp Toronto, FOSSLC's Summercamp,
 
CopyleftConf, and the Open Video Conference.</p>
 

	
 
<h2 id="tracy">Tracy Homer - Operations Manager</h2>
 
<p>Tracy acts as Operations Manager at Software Freedom Conservancy. 
 
<p>Tracy acts as Operations Manager at Software Freedom Conservancy.
 
Bringing her super-skills of organization and love of bureaucracy,
 
she helps things run at SFC smoothly behind the scenes.
 
Tracy also serves on the board of her local hackerspace, an organization
 
committed to teaching and promoting open technology exclusively.
 
She feels that open techonology allows people to express their creativity
 
regardless of their financial situation or technical background.
 
Tracy is currently persuing a degree in GIS from the University of Tennessee.</p>
 

	
 

	
 
<h2 id="bkuhn">Bradley M. Kuhn - Policy Fellow and Hacker-in-Residence</h2>
 

	
 
<p><a href="http://ebb.org/bkuhn/">Bradley M. Kuhn</a> is
 
the <a href="https://sfconservancy.org/about/staff/#bkuhn">Policy Fellow and
 
Hacker-in-Residence</a> at <a href="https://sfconservancy.org/">Software Freedom
 
Conservancy</a> and editor-in-chief
 
of <a href="https://copyleft.org">copyleft.org</a>. Kuhn began his work in
 
the software freedom movement as a volunteer in 1992, when he became an early
 
adopter of Linux-based systems, and began contributing to various Free
 
Software projects, including Perl.  He worked during the 1990s as a system
 
administrator and software developer for various companies, and taught AP
 
Computer Science at Walnut Hills High School in Cincinnati.  Kuhn's
 
non-profit career began in 2000, when he was hired by the FSF.  As FSF's
 
Executive Director from 2001&ndash;2005, Kuhn
 
led <a href="https://www.fsf.org/licensing">FSF's GPL enforcement</a>,
 
launched <a href="https://www.fsf.org/associate/">its Associate Member
 
program</a>, and invented
 
the <a href="http://www.gnu.org/licenses/agpl-3.0.html">Affero GPL</a>.  Kuhn
 
began as Conservancy's primary volunteer from 2006–2010, and became its first
 
staff person in 2011.  Kuhn holds a summa cum laude B.S. in Computer Science
 
from <a href="http://www.loyola.edu/academic/computerscience">Loyola
 
University in Maryland</a>, and an M.S. in Computer Science from
 
the <a href="http://www.cs.uc.edu/">University of
 
Cincinnati</a>.  <a href="http://www.ebb.org/bkuhn/articles/thesis/">Kuhn's
 
Master's thesis</a> discussed methods for dynamic interoperability of Free
 
Software programming languages.  Kuhn received
 
the <a href="http://www.oscon.com/oscon2012/public/schedule/detail/25039">O'Reilly
 
Open Source Award in 2012</a>, in recognition for his lifelong policy work on
 
copyleft licensing.  Kuhn has <a href="http://ebb.org/bkuhn/blog/">a
 
blog</a> and co-hosts
 
the audcast, <a href="http://faif.us/"><cite>Free as in
 
Freedom</cite></a>.</p>
 

	
 
<h2 id="rick">Rick Sanders - General Counsel</h2>
 

	
 
<p>Rick Sanders, has over 20 years' experience as a intellectual-property
 
litigator. He started his legal career at Fenwick & West's Silicon Valley
 
office, then moved to Nashville to join Waller,   before co-founding Aaron &
 
Sanders, with the goal of providing sophisticated legal services to technology
 
clients in Middle Tennessee. Rick also taught copyright law at Vanderbilt
 
University School of Law, and he co-produced The Copyright Office   Comes to
 
Music City for many years. He is also a past chair of the American Bar
 
Association's Trademarks and the Internet   committee, and the Nashville Bar
 
Association's Intellectual Property Section. He is admitted to the bar of the
 
States of California and Tennessee, as well as the U.S. Court of Appeal for the
 
Sixth and Ninth Circuits and all U.S. District Courts in California and
 
Tennessee. Before becoming a lawyer, Rick was a college instructor in English
 
composition and literature, especially Shakespeare. He is a native of Mountain
 
View, California and now lives in Nashville.</p>
 

	
 
<h2 id="karen">Karen M. Sandler - Executive Director</h2>
 

	
 
<p>Karen M. Sandler is an attorney and the executive director of Software Freedom
 
Conservancy, a 501c3 nonprofit organization focused on ethical technology. As
 
a patient deeply concerned with the technology in her own body, Karen is known
 
as a cyborg lawyer for her advocacy for free software as a life-or-death
 
issue, particularly in relation to the software on medical devices. She
 
co-organizes Outreachy, the award-winning outreach program for people who face
 
under-representation, systemic bias, or discrimination in tech. She is an
 
adjunct Lecturer-In-Law of Columbia Law School and a visiting scholar at
 
University of California Santa Cruz.</p>
 

	
 
<p>Prior to joining Software Freedom Conservancy, Karen was the executive
 
director of the GNOME Foundation. Before that, she was the general counsel of
 
the Software Freedom Law Center. She began her career as a lawyer at Clifford
 
Chance and Gibson, Dunn & Crutcher LLP.</p>
 

	
 
<p>Karen received her law degree from Columbia Law School where she was a James
 
Kent Scholar and co-founder of the Columbia Science and Technology Law Review.
 
She also holds a bachelor of science in engineering from
 
The Cooper Union for the Advancement of Science and Art.</p>
 

	
 
<p>Sandler has won awards for her work on behalf of software freedom, including
 
the O’Reilly Open Source Award in 2011. She received an honorary doctorate
 
from KU Leuven in 2023.</p>
 

	
 
<h2 id="sage">Sage Sharp - Senior Director of Diversity & Inclusion</h2>
 
<p>Sage Sharp is the Senior Director of Diversity & Inclusion at the Software
 
Freedom Conservancy. Sage runs Outreachy, which is Conservancy's diversity
 
initiative that provides paid, remote internships to people who are subject to
 
systemic bias or impacted by underrepresentation in tech. Sage is a
 
long-standing free software contributor, and is known for their work as a
 
Linux kernel maintainer for seven years. They also founded their own company,
 
Otter Tech, which has trained over 400 people on how to enforce a Code of
 
Conduct.</p>
 

	
 
<h2 id="pono">Daniel Pono Takamori - Community Organizer & Non-Profit Problem Solver</h2>
 
<p>Pono joined Conservancy to help fill a community need for bridging technical
 
and non-technical roles. Having worked at FOSS foundations and organizations
 
for over a decade, his background in FOSS infrastructure led him to think more
 
deeply about how to better use community intelligence instead of technology
 
to solve governance questions. He is passionate about making FOSS a more
 
equitable and inclusive space. With a background in mathematics and physics,
 
he looks forward to mobilizing social intelligence and community goveranance
 
as a basis for solving both technical and non-technical problems.</p>
 

	
 
<h2 id="paul">Paul Visscher - Systems Administrator</h2>
 
<p>Paul has been using Linux and FOSS for over 26 years and working as a sysadmin
 
for over 20 years. Having fallen in love with computers at a young age, he
 
found it intellectually intersting and found the FOSS world an incredible
 
and natural place to learn. He brings a passion for how free and open source
 
software can make our society a much more equitable place, and work for us
 
rather than against us. </p>
 

	
 
{% endblock %}
conservancy/content/copyleft-compliance/about.html
Show inline comments
 
{% extends "base_compliance.html" %}
 
{% block subtitle %}Copyleft Compliance Projects - {% endblock %}
 
{% block submenuselection %}CopyleftCompliance{% endblock %}
 
{% block content %}
 
<h1 id="ourwork">Conservancy's Copyleft Compliance Projects</h1>
 

	
 
<p>As existing donors and sustainers know, the Software Freedom Conservancy
 
  is a 501(c)(3) non-profit charity registered in New York, and Conservancy
 
  helps people take control of their computing by growing the software
 
  freedom movement, supporting community-driven alternatives to proprietary
 
  software, and defending free software with practical initiatives.
 
  Conservancy accomplishes these goals with various initiatives, including
 
  defending and upholding the rights of software users and consumers under
 
  copyleft licenses, such as the GPL.</p>
 

	
 
<p>Free and open source software (FOSS) is everywhere and in everything; yet
 
our software freedom is constantly eroded.  With the help of its
 
volunteers, <a href="/members/current/">member projects</a>,
 
and <a href="/about/staff/">staff</a>, Conservancy stands up for users'
 
software freedom via its copyleft compliance work.</p>
 

	
 
<p>Conservancy's primary work in copyleft compliance currently focuses on
 
our <a href="/copyleft-compliance/enforcement-strategy.html">Strategic GPL
 
Enforcement Initiative</a>.  This initiative, <a href="/news/2020/oct/01/new-copyleft-strategy-launched-with-ARDC-grant/">launched in October 2020</a>,
 
represents the culmination of nearly 15 years of compliance work of
 
Conservancy spanning ten different fiscally sponsored projects, past lawsuits
 
against more than a dozen defendants, and hundreds of non-litigation
 
compliance actions.</p>
 

	
 
<p>For these many years, Conservancy has always given the benefit of the
 
  doubt to companies who exploited our good nature and ultimately simply
 
  ignore the rights of users and consumers.  In that time, the compliance
 
  industrial complex has risen to a multi-million-dollar industry &mdash;
 
  selling (mostly proprietary) products, services, and consulting to
 
  companies.  Yet, these compliance efforts ignore consistently the most
 
  essential promise of copyleft &mdash; the complete, Corresponding Source
 
  and &ldquo;the scripts used to control compilation and installation of the
 
  executable&rdquo;.</p>
 

	
 
<p>We encourage our sustainers and software freedom enthusiasts everywhere to
 
  <a href="/copyleft-compliance/enforcement-strategy.html">read our detailed
 
  strategic plan for GPL enforcement</a> and its companion
 
  project, <a href="/copyleft-compliance/firmware-liberation.html">our
 
    Firmware Liberation Project</a>.</p>
 

	
 
<h2 id="projects">Compliance Relationship to Fiscally Sponsored Projects</h2>
 

	
 
<p>Historically, Conservancy was well-known for its ongoing license
 
compliance efforts on behalf of its BusyBox member project.  Today,
 
Conservancy does semi-regular compliance work for its BusyBox, Git, Inkscape,
 
Mercurial, Samba, QEMU and Wine member projects.  If you are a copyright
 
holder in any member project of Conservancy, please contact the project's
 
leadership committtee,
 
via <a href="mailto:PROJECTNAME@sfconservancy.org">&lt;PROJECTNAME@sfconservancy.org&gt;</a>
 
for more information on getting involved in compliance efforts in that
 
project.
 
</p>
 

	
 
<h2 id="linux">GPL Compliance Project For Linux Developers</h2>
 

	
 
<p>In May
 
2012, <a href="/news/2012/may/29/compliance/">Conservancy
 
launched</a> the <cite>GPL
 
Compliance Project for Linux Developers</cite>, which handles compliance and
 
enforcement activities on behalf of more than a dozen Linux copyright
 
holders.</p>
 
 
 

 
<p>The GPL Compliance Project for Linux Developers is comprised of copyright
 
holders in the kernel, Linux, who have contributed to Linux under its
 
license, <a href="http://www.gnu.org/licenses/gpl-2.0.html">the
 
GPLv2</a>. These copyright holders have formally asked Conservancy to engage
 
in compliance efforts for their copyrights in the Linux kernel.  In addition,
 
some developers have directly assigned their copyrights on Linux to Conservancy,
 
so Conservancy also enforces the GPL on Linux via its own copyrights in Linux.</p>
 

	
 
<p>Linux copyright holders who wish to assign copyright to or sign an enforcement agreement with
 
Conservancy should
 
  contact <a href="mailto:linux-services@sfconservancy.org">&lt;linux-services@sfconservancy.org&gt;</a>.
 
  In 2016,
 
  Conservancy <a href="/news/2016/nov/03/linux-compliance-agreements/">made
 
    public the template agreements used as part of this project</a>; both the
 
  <a href="/docs/blank_linux-enforcement-agreement.pdf">non-anonymous</a> and
 
  <a href="/docs/blank_anonymous-linux-enforcement-agreement.pdf">anonymous</a>
 
  versions are available.  However, please <strong>do not</strong> sign these
 
  unilaterally without contacting and discussing
 
  with <a href="mailto:linux-services@sfconservancy.org">&lt;linux-services@sfconservancy.org&gt;</a>
 
  first.</p>
 

	
 
<h2 id="debian">The Debian Copyright Aggregation Project</h2>
 

	
 
<p>In August 2015, <a href="/news/2015/aug/17/debian/">Conservancy announced the Debian Copyright Aggregation
 
Project</a>.  This project allows Debian contributors to assign copyrights to
 
Conservancy, or sign enforcement agreements allowing Conservancy to enforce
 
Free and Open Source (FOSS) licenses on their behalf.  Many Debian contributors
 
have chosen each of these options already, and more continue to join.</p>
 

	
 
<p>Debian contributors who wish to assign copyright to or sign an enforcement agreement with
 
Conservancy should contact <a href="mailto:debian-services@sfconservancy.org">&lt;debian-services@sfconservancy.org&gt;</a>.</p>
 

	
 
<h2 id="commitment">Conservancy's Commitment to Copyleft License Compliance</h2>
 

	
 
<p>Conservancy is dedicated to encouraging all users of software to comply
 
  with Free Software licenses. Toward this goal, in its compliance efforts,
 
  Conservancy helps distributors of Free Software in a friendly spirit of
 
  cooperation and participation.  In this spirit, Conservancy has co-published,
 
  with the Free Software Foundation (FSF), <a href="/copyleft-compliance/principles.html">the principles that both organizations
 
  follow in their compliance efforts</a>.
 
  </p>
 

	
 
{% endblock %}
conservancy/content/copyleft-compliance/enforcement-strategy.html
Show inline comments
 
{% extends "base_compliance.html" %}
 
{% block subtitle %}Copyleft Compliance Projects - {% endblock %}
 
{% block submenuselection %}EnforcementStrategy{% endblock %}
 
{% block content %}
 

	
 
<h1 id="strategic-gpl-enforcement-initiative">The Strategic GPL Enforcement Initiative</h1>
 

	
 
<p>As existing donors and sustainers know, the Software Freedom Conservancy
 
  is a 501(c)(3) non-profit charity registered in New York, and Conservancy
 
  helps people take control of their computing by growing the software
 
  freedom movement, supporting community-driven alternatives to proprietary
 
  software, and defending free software with practical initiatives.
 
  Conservancy accomplishes these goals with various initiatives, including
 
  defending and upholding the rights of software users and consumers under
 
  copyleft licenses, such as the <acronym title="General Public License">GPL</acronym>.</p>
 

	
 
<h2 id="brief-history-of-user-focused-gpl-enforcement">Brief History of
 
  User-Focused GPL Enforcement</h2>
 

	
 
<p>The spring of 2003 was a watershed moment for software freedom on
 
  electronic devices. 802.11 wireless technology had finally reached the
 
  mainstream, and wireless routers for home use had flooded the market
 
  earlier in the year. By June
 
  2003, <a href="https://hardware.slashdot.org/story/03/06/08/1749217/is-linksys-violating-the-GPL">the
 
  general public knew that Linksys (a division of Cisco) was violating the
 
  GPL</a> on their WRT54G model wireless routers. Hobbyists discovered
 
  (rather easily) that Linux and BusyBox were included in the router, but
 
  Linksys and Cisco had failed to provide source code or any offer for source
 
  code to its customers.</p>
 

	
 
<p>A coalition formed made up of organizations and individuals — including
 
  Erik Andersen (major contributor to and former leader of the BusyBox
 
  project) and Harald Welte (major contributor to Linux’s netfilter
 
  subsystem) — to enforce the
 
  GPL. <a href="https://sfconservancy.org/about/staff/#bkuhn">Bradley
 
  M. Kuhn</a>, who is now Conservancy’s Policy Fellow and
 
  Hacker-in-Residence, led and coordinated that coalition (when he was
 
  Executive Director of the <acronym title="Free Software Foundation">FSF</acronym>). By early 2004, this coalition, through the
 
  process of GPL enforcement, compelled Linksys to release an
 
  almost-GPL-compliant source release for the
 
  WRT54G. A <a href="https://openwrt.org/about/history">group of volunteers
 
  quickly built a new project, called OpenWrt</a> based on that source
 
  release. In the years that have followed, OpenWrt has been ported to almost
 
  every major wireless router product.  Now, more than 15 years later, the
 
  OpenWrt project routinely utilizes GPL source releases to build, improve
 
  and port OpenWrt.  The project has also joined coalitions to fight the FCC
 
  to ensure that consumers have and deserve rights to install modified
 
  firmwares on their devices and that such hobbyist improvements are no
 
  threat to spectrum regulation.</p>
 

	
 
<p>Recently, <a href="https://sfconservancy.org/news/2020/sep/10/openwrt-joins/">OpenWrt joined Conservancy as one its member projects</a>,
 
  and Conservancy has committed to long-term assistance to this project.</p>
 

	
 
<p>OpenWrt has spurred companies to create better routers and other wireless
 
  devices than such companies would otherwise have designed because they now need to
 
  either compete with hobbyists, or (better still) cooperate with those hobbyists to
 
  create hardware that fully supports OpenWrt’s features and improvements
 
  (such as dealing
 
  with <a href="https://openwrt.org/docs/guide-user/network/traffic-shaping/sqm">the
 
  dreaded “bufferbloat” bugs</a>). This interplay between the hobbyist
 
  community and for-profit ventures promotes innovation in
 
  technology. Without both permission <em>and</em> the ability to build and
 
  modify the software on their devices, the hobbyist community
 
  shrinks. Without intervention to ensure companies respect the hobbyist
 
  community, hobbyists are limited by the oft-arbitrary manufacturer-imposed
 
  restraints in the OEM firmware. OpenWrt saved the wireless router market
 
  from this disaster; we seek to help other embedded electronic subindustries
 
  avoid that fate. The authors of GPL’d software chose that license so its
 
  source is usable and readily available to hobbyists. It is our duty, as
 
  activists for the software freedom of hobbyists, to ensure these legally
 
  mandated rights are never curtailed.</p>
 

	
 
<p>(More on the OpenWrt project’s history and its connection to GPL
 
  enforcement can be found
 
  in <a href="https://www.youtube.com/watch?v=r4lCMx-EI1s">Kuhn’s talk
 
    at <em>OpenWrt Summit 2016</em></a>.)</p>
 

	
 
<p>Conservancy has had substantial success in leveraging more device freedom
 
  in other subindustries through GPL compliance. In 2009, Conservancy, with
 
  co-Plaintiff Erik Andersen, sued fourteen defendants in federal court under
 
  copyright claims on behalf of its BusyBox member project. Conservancy 
 
  copyright claims on behalf of its BusyBox member project. Conservancy
 
  achieved compliance for the BusyBox project in all fourteen
 
  cases. Most notably, the GPL-compliant source release obtained in the
 
  lawsuit for certain Samsung televisions provided the basis for
 
  the <a href="https://www.samygo.tv/">SamyGo project</a> — an alternative
 
  firmware that works on that era of Samsung televisions and allows consumers
 
  to modify and upgrade their firmware using FOSS.</p>
 

	
 
<p>Harald Welte also continued his efforts during the early and mid-2000s,
 
  after the Linksys enforcement, through
 
  his <a href="https://gpl-violations.org/">gpl-violations.org
 
    project</a>. Harald successfully sued many companies (mostly in the
 
  wireless router industry) in Germany to achieve compliance and yield source
 
  releases that helped OpenWrt during that period.</p>
 

	
 
<h2 id="importance-of-linux-enforcement-specifically">Importance of Linux Enforcement Specifically</h2>
 

	
 
<p>In recent years, embedded systems technology has expanded beyond wireless
 
  routers to so-called “Internet of Things” (IoT) devices designed for
 
  connectivity with other devices in the home and to the “Cloud”. Consumer
 
  electronics companies now feature and differentiate products based on
 
  Internet connectivity and related services. Conservancy has seen
 
  Linux-based firmwares on refrigerators, baby monitors, virtual assistants,
 
  soundbars, doorbells, home security cameras, police body cameras, cars, AV
 
  receivers, and televisions.</p>
 

	
 
<p>This wide deployment of general purpose computers into
 
  mundane household devices raises profound privacy and consumer rights
 
  implications. <a href="https://www.nytimes.com/2019/12/15/us/Hacked-ring-home-security-cameras.html">Home</a> <a href="https://www.washingtonpost.com/technology/2019/01/23/family-says-hacked-nest-camera-warned-them-north-korean-missile-attack/">security</a> <a href="https://www.npr.org/sections/thetwo-way/2018/06/05/617196788/s-c-mom-says-baby-monitor-was-hacked-experts-say-many-devices-are-vulnerable">cameras</a> <a href="https://www.cnn.com/2019/12/12/tech/ring-security-camera-hacker-harassed-girl-trnd/index.html">are</a> <a href="https://abc7.com/baby-monitor-hack-leads-to-kidnap-scare/4931822/">routinely</a> <a href="https://www.bbc.com/news/av/uk-44117337/security-footage-viewed-by-thousands">compromised</a>
 
  — invading the privacy and security of individual homes. Even when
 
  companies succeed in keeping out third parties, consumers
 
  are <a href="https://www.theguardian.com/technology/2019/aug/29/ring-amazon-police-partnership-social-media-neighbor">pressured
 
  by camera makers</a> to automatically upload their videos to local
 
  police. Televisions
 
  routinely <a href="https://techcrunch.com/2019/01/07/vizio-settlement-moves-forward/">spy
 
  on consumers for the purposes of marketing and massive data
 
  collection</a>.</p>
 

	
 
<p>There is one overarching irony to this growing dystopia: nearly all these
 
  devices are based primarily on GPL'd software: most
 
  notably, Linux. While Linux-based systems do allow proprietary user-space
 
  applications (i.e., not licensed under GPL), the kernel and many other system
 
  utilities routinely used in embedded systems, such as Conservancy’s BusyBox
 
  project, are under that license (or similar copyleft licenses such as the
 
  LGPL). These licenses require device makers to provide complete,
 
  corresponding source code to everyone in possession of their
 
  devices. Furthermore, Linux’s specific license (GPL, version 2), mandates
 
  that source code must also include “the scripts used to control compilation
 
  and installation of the executable”. In short, the consumers must receive
 
  all the source code and the ability to modify, recompile and reinstall that
 
  software. Upholding of this core freedom for Linux made OpenWrt
 
  possible. We work to preserve (or, more often, restore) that software
 
  freedom for consumers of other types of electronic devices.</p>
 

	
 
<p>When devices are compliant with the GPL’s requirements, customers can
 
  individually or collectively take action against the surveillance and other
 
  predatory behavior perpetuated by the manufacturers of these devices by
 
  modifying and replacing the software. Hobbyists can aid their community by
 
  providing these alternatives. People with no technical background already
 
  replace firmware on their wireless routers with OpenWrt to both improve
 
  network performance and allay privacy concerns. Furthermore, older
 
  equipment is often saved from planned obsolescence by alternative
 
  solutions. E-recyclers
 
  like <a href="https://www.freegeek.org/">Freegeek</a> do this regularly for
 
  desktop and laptop machines with GNU/Linux distributions like Debian, and
 
  with OpenWrt for wireless routers. We seek to ensure they can do this for
 
  other types of electronic products. However, without the complete,
 
  corresponding source code (CCS), including the scripts to control its compilation and
 
  installation, the fundamental purpose of copyleft is frustrated. Consumers,
 
  hobbyists, non-profit e-recyclers and the general public are left without
 
  the necessary tools they need and deserve, and which the license promises
 
  them.</p>
 

	
 
<p>Additionally, copyleft compliance relates directly to significant
 
  generational educational opportunities. There are few easier ways to
 
  understand technology than to experiment with a device one already
 
  has. Historically, FOSS has succeeded because young hobbyists could
 
  examine, modify and experiment with software in their own devices. Those
 
  hobbyists became the professional embedded device developers of today!
 
  Theoretically, the advent of the “Internet of Things” — with its many
 
  devices that run Linux — <em>should</em> give opportunities for young
 
  hobbyists to quickly explore and improve the devices they depend on in
 
  their every day lives.  Yet, that’s rarely possible in reality.  To ensure
 
  that both current and future hobbyists can practically modify their
 
  Linux-based devices, we must enforce Linux’s license. With public awareness
 
  that their devices can be improved, the desire for learning will increase,
 
  and will embolden the curiosity of newcomers of all ages and