Compare commits

...

1067 commits

Author SHA1 Message Date
d4e5619fd9 update msa 2026-01-08 09:45:27 -08:00
a55372b422 update Bdale's bio 2025-12-30 17:49:47 -05:00
c6b226bdba fix doubled match goal 2025-12-30 09:43:04 -05:00
9bfae74fe5 update urgent box for fundraiser 2025-12-29 21:34:30 -05:00
7b4977e4c6 update 2025 match goal by 40,012 2025-12-29 15:38:59 -05:00
8c282586ff Correct link on added page of tentative ruling. 2025-12-29 08:52:18 -08:00
c6ae8d7667 uboot joins SFC 2025-12-29 11:36:33 -05:00
edcfae3253 Missing close parens on first page fixed. 2025-12-24 19:06:35 -08:00
ee7efa275a note to clarify that these are tentative rulings 2025-12-24 19:03:28 -08:00
0fd6e933b7 Update PDF file to include statement from website as well. 2025-12-24 18:40:11 -08:00
d7e08fc649 Update link to file just renamed. 2025-12-24 08:09:57 -08:00
3804cae2bf Rename file, missing '3' on the case number. 2025-12-24 08:08:49 -08:00
1641d156e8 Add item to Vizio lawsuit materials. 2025-12-24 08:04:27 -08:00
f04b66ad93
Document local times in database 2025-12-15 14:33:39 +11:00
12aabab531 Update link so that my link on Fediverse to fundraiser is ✔ 2025-12-14 18:56:01 -08:00
6f52a9c448 Add umlaut to my name and link. 2025-12-09 17:18:22 -08:00
b6c24527c3 add 2025-12-04 tentative ruling to vizio 2025-12-05 12:21:29 -06:00
358665690b add tentative ruling to frontpage and glossary 2025-12-04 12:17:34 -06:00
7d30cda9f8 typo on frontpage 2025-12-03 09:53:41 -06:00
8b35515341 remove sage from staff page 2025-12-02 11:22:19 -05:00
886bad356d fix match goal double 2025-11-26 09:45:49 -08:00
c372a9e44f add new tshirt 2025-11-26 07:49:24 -08:00
7226e1ab19 fundraiser amount 2025-11-26 07:46:07 -08:00
67524f5723 Merge branch 'master' of f.sfconservancy.org:Conservancy/website 2025-11-26 07:43:41 -08:00
782943a3b3 update frontpage with fundraiser notice 2025-11-26 07:43:27 -08:00
416fa7d33c update frontpage with fundraiser notice 2025-11-26 07:41:34 -08:00
c8e8d15d0c Activate CY2025 end of year match drive. 2025-11-25 16:17:34 -08:00
519e23aadd Also comment out the featured term. 2025-11-25 16:11:47 -08:00
08a4f1c09d Just comment out the announcement section for now. 2025-11-25 16:10:47 -08:00
fe9f5c2b45 update year in review for 2025 2025-11-25 14:23:07 -08:00
5ba067f84d Change time in real-time. 2025-11-13 10:41:28 -08:00
Denver Gingerich
2db38074a3 Vizio page: fix MSA link in 3cad17b to use current 2025-11-13 09:35:44 -08:00
d272ed6a45 Make link directly to the page we're on. 2025-11-13 09:02:20 -08:00
b33b211f61 Fix links from prior commit. 2025-11-13 08:58:58 -08:00
3cad17be44 Announce Vizio hearing today. 2025-11-13 08:57:38 -08:00
Denver Gingerich
559f8aecd5 Our Work menu: fossy.us less used now -> fossy.ca 2025-11-10 06:53:43 -08:00
fed681dcbc Fix a minor typo and add more acronym tags in my bios. 2025-11-07 08:49:42 -08:00
013806bb2f Kuhn ⇒ Kühn — I have changed spelling of my surname. 2025-11-07 08:39:51 -08:00
ce47d4f938 Karen should be listed, not me. 2025-11-07 08:36:32 -08:00
1cbc110e94 make more space for images. 2025-11-06 20:58:48 -08:00
e4ec332987 Correct title. 2025-09-09 07:40:50 -07:00
Denver Gingerich
8dc818ed3b Update Vizio trial date per today's hearing 2025-09-04 14:39:07 -07:00
742506fbe4 Add article about Codeberg and bots. 2025-08-16 15:40:55 -07:00
a3d652e01c Improve alt text for GitUpGitHub logo. 2025-08-16 15:40:55 -07:00
Denver Gingerich
d28254dec2 Add SFC's yesterday reply re SFC MSA to Vizio page 2025-08-16 10:50:30 -07:00
4951f263e7 Missing </a> 2025-08-15 14:43:14 -07:00
5c88096186 Link and typo fix. 2025-08-15 14:42:46 -07:00
95ff2c03cc Update top of transparency page. 2025-08-15 14:37:09 -07:00
597a0fe1f9 Wow, Gitea really doesn't have a FOSS offering anymore? 😲 2025-08-15 14:31:42 -07:00
7adc7166f1 Change intro line for GiveUpGitHub 2025-08-15 14:29:16 -07:00
f5f4fcc83e Put GiveUpGitHub on the menus and front page.
Given the renewed interest this week in folks wanting to give up
Github, now is the time to promote this more.
2025-08-15 14:28:11 -07:00
9dfbf287c8 Correct FIXME for highlighting past litigation while fixing term
I stumbled upon this FIXME while testing my changes prior to this and
realized that can't possibly be right.

So, I corrected it and also changed the text while at it.
2025-08-15 14:21:44 -07:00
4b34f50a57 More s/PastLawsuits/ImpactLitigationCopyleft/g 2025-08-15 14:18:25 -07:00
a5c31ebb1b s/PastLawsuits/ImpactLitigationCopyleft/ 2025-08-15 14:16:55 -07:00
9c5814e59b Reorder and rename a few items on this menu. 2025-08-15 14:06:50 -07:00
ec9cf5dd49 Cut paragraph that has only historical significance.
This might belong in a long retrospective about the Best Buy case,
but it's been a decade since anyone had this confusion (to my
knowledge).
2025-08-15 14:02:17 -07:00
51d9367d7b Work in term “impact litigation” & reverse chronological
Also, add mention of current Vizio case briefly and link to its page.
2025-08-15 14:01:26 -07:00
8e02a7ca82 s/CourtBattles/ImpactLitigation/g 2025-08-15 13:51:47 -07:00
7827b42ec1 Incorporate comments from Denver made in chat 2025-08-15 13:38:58 -07:00
3420b83bb2 A few typo fixes. 2025-08-15 13:16:01 -07:00
ccf2264f2a Update GitUpGitHub page with current information.
There are a few minor wording edits and the like here, but the main
changes are to add new information about the Microsoft integration of
CoPilot into all operations of GitHub, and Microsoft's move to put
GitHub under their CoreAI division.

I also removed the “We'll add more later” text, as we may not have
time to do it, and we can always add more when we like and promote it
separately.
2025-08-15 13:06:54 -07:00
Denver Gingerich
a04c62d08b Add MSA and trial continuation docs to Vizio page 2025-08-12 13:55:33 -07:00
b7ceb9084b Fix header 2025-08-08 11:31:54 -07:00
e964c7651e Correct trial date 2025-08-08 10:59:46 -07:00
Denver Gingerich
b69d91531b Update Vizio trial date per recent order 2025-08-06 16:42:47 -07:00
3043312fca Distinguished Service award fossy 25 and menu change 2025-08-01 12:54:36 -07:00
ab1edd6749 Fix <p> tags in the middle of the bio. 2025-07-26 17:12:24 -07:00
22caa3c963 Move copyleft-next text back in — different way.
Since I removed the redundancies about titles, this fact has to
appear somewhere else in the bio.

Also, fix some minor typos along the way.
2025-07-26 17:11:08 -07:00
5957b632d9 Really these should have all been &ndash; all along, not hyphens. 2025-07-26 17:05:15 -07:00
01f462f34c More formatting minor fixes. 2025-07-26 17:03:37 -07:00
44414115b1 Minor formatting changes. 2025-07-26 17:00:43 -07:00
bcbf2ed097 Fix typo 2025-07-26 16:58:18 -07:00
76ecd20fb9 Minor update to bio. 2025-07-26 16:54:00 -07:00
a96b23d043 s/and/&amp; in title; fix &apos; various places. 2025-07-26 16:52:34 -07:00
16d3f7e10a Update my bio in various ways. 2025-07-26 16:48:54 -07:00
62ef193c4f Fix typos in summary adjudication definition; return “full”
I just realized that we probably had “full” there for cases where we
shorten the definition on the front page.  I just did that here, so
returned the word full.
2025-07-26 14:26:00 -07:00
26ec583bf3 word 'full' is kinda redundant here.
e.g., why would we link to a *partial* glossary of terms here? 😆
2025-07-26 14:03:05 -07:00
d615411695 Shorten title, so its more likely to be one line on frontpage 2025-07-26 14:01:49 -07:00
3772e91d8d Tighten language, mainly to make it look better on front page 2025-07-26 13:59:30 -07:00
bf97e4eb5b Improve definition of “summary judgment” & make it “Featured Term” 2025-07-26 13:57:04 -07:00
b8fc8aa917 Change featured item to Vizio travel grants. 2025-07-26 13:48:51 -07:00
Denver Gingerich
e917eb58ad Add trial date to Vizio page, linking to news item 2025-07-24 21:18:56 -07:00
9a789dcf59
Avoid sticky mobile header overlapping internal link targets 2025-07-24 14:39:56 +10:00
9254befd7e
Be clearer that the Blog RSS feed relates to a subset
Rather than modifying the top-level RSS link when viewing by tag, I've added an
extra link next to the "Displaying posts tagged ..." link.
2025-07-24 14:31:24 +10:00
aa02f00aba
Fix previous Vizio changes on mobile
Was overflowing on a small screen.
2025-07-24 14:31:24 +10:00
e8a1d3f0cf fix link to motion to remand 2025-07-23 12:23:50 -07:00
Denver Gingerich
ce3ea1512c Update a few docket dates on the Vizio page 2025-07-23 11:34:37 -07:00
Denver Gingerich
2b232e55d7 A couple Vizio changes for stylesheet consistency 2025-07-23 11:02:02 -07:00
35d1e568fa
Fix Vizio image alignment
Use of ::before was possibly a little complicated. I've added an explicit
element for the image and displayed using flexbox.
2025-07-23 22:50:43 +10:00
c4f6187263
Avoid <li> items showing bolder than paragraph text
List items were showing as "font-weight: 400", where paragraph text was
"font-weight: 375". This isn't very obvious when using the Atkinson Hyperlegible Next
font, but is when custom fonts aren't being loaded.
2025-07-23 22:10:06 +10:00
85822cfd9f
blog: Remove RSS feed links next to individual tags
Instead the tags are now added to the RSS feed link at the top of the page when
in use.
2025-07-23 21:57:51 +10:00
Denver Gingerich
36a80acc26 Additional fix for a Resources link on Vizio page 2025-07-22 22:29:34 -07:00
Denver Gingerich
668b84f4a9 Fix a couple Resources links on Vizio page 2025-07-22 22:26:56 -07:00
Denver Gingerich
a2659802ad Minor typo fix on Vizio main page 2025-07-22 22:15:06 -07:00
Denver Gingerich
e83a62cd97 Minor typo fix in Vizio template 2025-07-22 22:08:45 -07:00
Meredith Thompson
8e6aa6db7b
Apply the redesign patch
The new design focuses on the Vizio page, but includes a new theme for
the rest of the site as well.  All of these changes were both designed
and implemented by Meredith Thompson <merethom@pm.me>.
2025-07-23 14:03:22 +10:00
cea37dddc6
Rename Font Awesome file to clarify it's a subset of the icon set 2025-07-23 13:40:54 +10:00
bd650661c2 Another attempt at update of title on this file 2025-07-10 10:42:24 -07:00
237d88dee1 Use exiftool to correct metadata in recently added PDF documents 2025-07-10 10:06:39 -07:00
Denver Gingerich
d75f362d82 Add/update MSA-related PDFs in Vizio docket detail 2025-07-10 09:44:29 -07:00
Denver Gingerich
2dfc0670d5 Add SFC second MSA, etc., to Vizio docket summary 2025-07-10 08:47:56 -07:00
Denver Gingerich
c6b6cc2853 Add some spacing to Vizio docket summary 2025-06-18 15:51:59 -07:00
Denver Gingerich
81ae786309 Fix formatting in Vizio docket summary 2025-06-18 15:48:50 -07:00
Denver Gingerich
46df4f597e Remove cruft, highlight Vizio trial date 2025-06-18 15:36:33 -07:00
220f49d64d add versity logo for use on fossy site 2025-05-28 12:11:45 -04:00
9202d7eede update Sage's title 2025-05-05 10:47:58 -04:00
6b7591693a just kidding! these weren't supposed to be sponsors, their logos were just supposed to be uploaded for use on fossy 2025-04-28 17:43:19 -04:00
eeff758ef5 try the autosizing again, I think this one should work? 2025-04-25 18:15:57 -04:00
c2a71b4418 nope, that was bad 2025-04-25 18:13:41 -04:00
5f2c5f6706 make some css tweaks to automatically size the logos correctly...I think? 2025-04-25 18:12:09 -04:00
99c04fcff9 add bloomberg engineering and codethink as sponsors 2025-04-25 18:00:07 -04:00
dec7cc637d change capitalization on id tag for xorg 2025-04-04 20:06:58 -04:00
86f929d999 fix some formatting 2025-04-04 20:04:40 -04:00
0c4ef14d4e add libssh & logo 2025-04-04 20:00:57 -04:00
a077c30b33 add ID tag for XOrg so people can go to https://sfconservancy.org/projects/current/#xorg (per a request from Martin Michlmayr) 2025-04-04 19:52:31 -04:00
6659ec8868
Upgrade Django to 5.1.6 2025-03-05 14:04:02 +11:00
9a7ab2b0de
openwrt-one: Avoid page scroll when clicking a thumbnail 2025-03-05 12:28:36 +11:00
2d0cc8abe8
fossy: Disable community track proposal form
Tracks are selected for this year, so no need for this to collect spam for the
next 9 months.
2025-03-05 12:25:11 +11:00
4d1fd9e878
openwrt-one: Enable menu item 2025-03-05 12:12:36 +11:00
a604e1323b
Tune SQLite settings 2025-03-05 07:36:24 +11:00
4cd203ad58
openwrt-one: The bits I missed 2025-03-05 07:26:10 +11:00
ba3d57a799
openwrt-one: Apply Denver's feedback 2025-03-04 21:51:47 +11:00
4cdbdb9ca8
Add OpenWRT One mobile support 2025-03-03 19:22:24 +11:00
018ad80e9a
Add mockup OpenWRT One page 2025-03-03 19:01:38 +11:00
27c66578eb
Tweak docs 2025-02-21 19:27:41 +11:00
7d461a810f
Add SQLite write timeout to reduce "database locked" errors
This allows write requests to queue. I've also documented the one-off change to
enable WAL mode.
2025-02-21 19:27:41 +11:00
0753538503 add fossy 2025 prospectus 2025-02-20 12:06:59 -05:00
bf9cecc0b1 update fossy track submission deadline 2025-02-20 11:16:20 -05:00
ec67540c49 liblouis and xorg 2025-02-11 22:41:53 -05:00
d6c3f76c7e Clarify instructions based on pono's feedback. 2025-01-17 07:55:03 -08:00
c7eed4cd24 Update README script to explain better how ./bin/deploy works. 2025-01-17 07:46:17 -08:00
3a81d3042e Fundrasier — link to wrap up blog post, mention how much is raised
At this point, this entire file is going to require that we make sure
it's updated before the fundraiser.
2025-01-17 07:36:35 -08:00
554b0c8fde Fundraiser — Keep fundraising banner until after FOSDEM
This was based on the dates for FOSDEM 2025, so likely this will need
to be adjusted next year.
2025-01-17 07:35:58 -08:00
177c37dff2 image for exceeding fundraising goal 2024 2025-01-16 16:26:15 -08:00
3aa288d937 typo in link 2025-01-14 12:00:00 -08:00
d40c6df0cb update frontpage blurb for avm news 2025-01-13 14:43:43 -08:00
Denver Gingerich
be2542d554 copyleft-compliance: add AVM lawsuit details 2025-01-09 05:31:56 -08:00
Denver Gingerich
b4f7331e72 copyleft-compliance: "Previous Lawsuits" menu item
Add "Previous Lawsuits" to "What We Do" menu, and comment out
"Corresponding Source" for now, as we meant to do at the start of the
fundraiser.
2025-01-08 19:58:16 -08:00
766a048a2b add sages embroidery picture 2025-01-06 15:16:33 -08:00
bdd883490f
supporters: Default to "monthly" Sustainer
Also remove unused `template_name` property on `SustainerForm`. That template
didn't exist.
2024-12-21 11:29:59 +11:00
7c47a85c5b
supporters: Increase button border, add drop shadow and add grow animation 2024-12-21 10:17:14 +11:00
e8d5b08143
supporters: Add notice on PayPal page linking back to Stripe payment 2024-12-21 10:08:29 +11:00
74dc569d4f update ux for sustainer button 2024-12-20 08:24:50 -08:00
53b95a217f Merge branch 'master' of f.sfconservancy.org:Conservancy/website 2024-12-19 15:23:51 -08:00
f6e29c4997 add Sourceware to YearInReview 2024-12-19 15:22:44 -08:00
c80f8b41ac
supporters: Add recurring details to Stripe export 2024-12-18 10:20:49 +11:00
882d578e46
contacts: Allow unsubscribes to be actioned from list view 2024-12-18 10:05:34 +11:00
45fd0c4f5e
supporters: Mention tax receipt in supporter email 2024-12-17 12:12:14 +11:00
de861fe14d
contacts: Update unsubscribe to work through browser GET interface
Also add field to mark unsubscribes as actioned.
2024-12-11 10:37:02 +11:00
c377b329e2 add john gilmore to sponsor list 2024-12-06 14:13:46 -05:00
Denver Gingerich
a4689db62b Update Vizio trial date 2024-12-05 15:32:00 -08:00
df03d1b4be Merge branch 'master' of f.sfconservancy.org:Conservancy/website 2024-12-04 05:36:17 -08:00
c39e201c58 display total for fundraising bar 2024-12-04 05:35:34 -08:00
1c32b67552 update tracy's bio 2024-12-03 14:50:43 -05:00
c9f8301c99 small fixes for YiR 2024-11-26 14:06:55 -05:00
4e7c0e303c update language 2024-11-26 13:59:48 -05:00
9b053d0621 fix openwrt in yearinreview 2024-11-26 13:57:11 -05:00
e908683c61 2024 year in review 2024-11-26 13:22:29 -05:00
Denver Gingerich
f86bf0d121 Update Vizio trial date 2024-11-25 21:00:52 -08:00
db001c8ebe
Update SITE_FUNDGOAL setting for 2024 2024-11-26 09:07:05 +11:00
39a2a6a2f7 remove northbaypython and racket 2024-11-25 13:22:02 -07:00
6931961c42 openwrt one pcb picture 2024-11-25 10:46:00 -07:00
e7b59bb125 fossy 2024 osl panel picture 2024-11-25 10:25:37 -07:00
2ea99ef3c8
Revert use of static tags for videos 2024-11-22 12:03:50 +11:00
c40ed7dbd9
Add 2024 T-shirt to Sustainers page 2024-11-22 12:00:30 +11:00
c83b6404e0
supporters: Document "restricted API key" required permissions 2024-11-22 11:42:57 +11:00
99698c388f update yearinreview year temporarily 2024-11-18 14:46:01 -08:00
1c3c803ee1
supporters: Handle Stripe sustainer renewals and ACH delayed payments 2024-11-15 19:36:24 +11:00
dc133ff0cd
supporters: Make the new sustainers page live
I've temporarily hidden the quote for now.
2024-11-13 09:17:38 +11:00
ed74990b7c
Fix typo in CAPTCHA settings 2024-11-12 14:31:03 +11:00
d4a1cfcff4
Reduce CAPTCHA noise a little 2024-11-12 14:21:50 +11:00
b2e57836c1
Add recurring column to sustainers admin list 2024-11-12 14:15:38 +11:00
5338e43e60
Add CAPTCHA to FOSSY track proposals form 2024-11-12 14:15:13 +11:00
a6f7cea8cc
supporters: Updated thanks page 2024-10-30 12:19:02 +11:00
2dbfc38e1b
supporters: Add Karen's tweaked no-JS text 2024-10-29 22:45:36 +11:00
3f4d8a4522
supporters: Note reasoning behind use of hosted checkout 2024-10-28 17:27:07 +11:00
d82122daa4
supporters: Simplify and extend docs 2024-10-25 11:30:22 +11:00
4cdfbdd722
supporters: Additional spacing after removing breadcrumbs 2024-10-25 10:16:53 +11:00
b831f458d2
supporters: Additional space above video on mobile 2024-10-25 10:14:08 +11:00
55d6bfab40
supporters: Remove breadcrumbs
I think best to remove any distractions from becoming a sustainer.
2024-10-25 10:10:27 +11:00
adf832f38f
supporters: Use pointer cursor for amount selection buttons 2024-10-25 09:42:59 +11:00
c1e3879891
supporters: Don't escape email text 2024-10-24 18:04:27 +11:00
a51a7e2099
supporters: Add sustainer confirmation email 2024-10-24 17:51:49 +11:00
48048f349a
supporters: Use data-binding for amount rather than events
Also tidied forms.py a little by consolidating into widget and moving help text
to template.
2024-10-24 17:06:32 +11:00
c843e1c59f
supporters: Apply Black formatter 2024-10-23 18:16:47 +11:00
68c5199bb5
supporters: Fix monthly amounts, validate minimum amount in frontend, update PayPal info 2024-10-23 18:10:43 +11:00
e9f0909d8c
supporters: Add PayPal template 2024-10-23 09:24:46 +11:00
bb89d69ef1
supporters: Consolidate alternative payment options 2024-10-22 23:52:35 +11:00
82f8fbb758
supporters: Add sustainer form with pre-canned amount options 2024-10-22 23:52:35 +11:00
7eb0f274f7
Fix some HTML validation issues 2024-10-22 23:51:37 +11:00
2fe5ca53df
Upgrade django-countries to support Django 5.1 2024-10-22 19:19:11 +11:00
ad380706c0
Upgrade to Django 5.1
This provides the new "Reusable field group templates" feature (as of
5.0).
2024-10-22 10:34:06 +11:00
8da5e1dac6
Bring Stripe sustainer form into "Become a sustainer" page 2024-10-18 11:53:18 +11:00
7cc4aee9f2
Add transparent background to T-shirt image 2024-10-18 11:53:18 +11:00
7c12fa9e03 update FOSSY track proposals for 2025 2024-10-17 13:24:48 -07:00
43680afd38 update kallithea urls to forgejo 2024-10-16 20:34:04 -04:00
6139a13fde
Add payment time column to Stripe export 2024-10-11 21:58:46 +11:00
a74244efb4
Record Stripe payment intent, export to CSV 2024-10-09 02:01:32 +11:00
36ecf098b0
Merge branch 'master' into sustainer-payment 2024-10-08 23:55:14 +11:00
91762fe286
Fix odd-looking red outline on focused form field
Can't recall why I added this. It doesn't make much sense from a usability
perspective as it suggests the field might be invalid.
2024-10-08 23:53:47 +11:00
34b51240e9
Use STORAGGES setting to avoid deprecation warning 2024-10-08 23:53:15 +11:00
1f83c2fb69
Fix sustainer form default 2024-10-08 23:34:10 +11:00
3fe83d1466
Add annual renew 2024-09-30 17:40:29 +10:00
ce4ae22fa5
Add prototype monthly recurring payment via Stripe 2024-09-18 15:34:59 +10:00
fcccd6f72f
Django 4.2.16 security update 2024-09-05 09:36:39 +10:00
26a6928a20
Add prototype Stripe sustainer payment workflow 2024-09-05 09:35:24 +10:00
Denver Gingerich
2fc84e145f Add remaining Vizio documents from this year 2024-08-23 10:29:46 -07:00
3bbd987e35 usethesource: Add link to offer upload 2024-07-30 13:03:48 +10:00
54ae2c7b06 usethesource: Add admin interface 2024-07-29 23:44:40 +10:00
b39fbaa402 usethesource: Add missing template 2024-07-29 23:33:58 +10:00
770f4f6c26 usethesource: Add prototype "upload offer for source" 2024-07-29 23:29:25 +10:00
a2f38653fb
Fix trailing whitespace and missing end-of-file newline 2024-07-22 18:39:05 +10:00
c5289f39bb
Fix flake8 warnings 2024-07-22 18:39:00 +10:00
1a5441ba75
Fix tests
These were failing due to pytest defaulting to `DEBUG = False` (and then getting
`ValueError: Missing staticfiles manifest entry for ...`).
2024-07-22 16:56:25 +10:00
6636119200
Use {% static %} for home page video subtitles 2024-07-22 10:37:56 +10:00
02efd52c48
Update README - overview, licenses and Ansible 2024-07-22 10:32:41 +10:00
5479785cc1
Add default line-height to <li> elements
They currently look too tight compared with paragraph text.
2024-07-22 10:13:50 +10:00
024ef59428
Improve home page video layout 2024-07-19 21:39:45 +10:00
dbafac8f2c add cisco logo for tracy 2024-07-16 13:17:28 -04:00
ad2edca154 Merge branch 'master' of ssh://k.sfconservancy.org/website 2024-07-10 11:53:42 -07:00
f9acc22644 add aws sponsor image
add aws sponsor
2024-07-10 11:52:50 -07:00
0092affabb add aws sponsor image 2024-07-10 11:32:12 -07:00
Denver Gingerich
9a8bb36eac Update Vizio trial date per today's hearing 2024-06-27 11:22:33 -07:00
Denver Gingerich
2a4bc19c49 Update Vizio trial date/note; more updates to come 2024-06-15 15:53:08 -07:00
Denver Gingerich
2050e4cb92 Fix What We Do -> FOSSY link per chat, to fossy.us 2024-06-14 11:30:24 -07:00
517900be68 add sponsor per Tracy's request 2024-06-11 10:54:45 -04:00
31fa3694ea
Handle excessively long paths 2024-06-06 18:07:05 +10:00
Denver Gingerich
52d72eb554 Remove links to historical-purposes-only documents 2024-05-28 16:09:10 -07:00
8091c44c26
Add the minified version of tachyons.css 2024-05-13 18:25:27 +10:00
7fa799743e
Update to-dos 2024-05-13 18:18:40 +10:00
5c782ad7b2
Add size to header logo 2024-05-13 18:11:37 +10:00
9a3873fac6
Remove FIXME 2024-05-13 18:07:56 +10:00
29e46a237f
Disable Tachyons import line
This avoids an error during `collectstatic`.
2024-05-13 18:01:44 +10:00
e4ef2d7862
Switch to ManifestStaticFilesStorage for hashed URLs to static files 2024-05-13 17:55:54 +10:00
783cdc6189
Eliminate base_standard.html template and internalNavigate blocks
The base_standard.html template was an unnecessary level of template
inheritance.

Also removed unused `min` and `subtract` template tags.
2024-05-13 17:11:01 +10:00
a83d22e243
Remove unused podjango files
Also updated the podjango templates to reference the *actual* base template,
`base_conservancy.html`, rather than `base_standard.html`.
2024-05-13 16:26:26 +10:00
97b60b44f5
Add some basic 200 OK smoke tests for key pages 2024-05-10 12:12:04 +10:00
0b8ae2ca77
Move SITE_FUNDGOAL configuration to settings/base.py
This changes more often than the surrounding code, so should live with the other
configuration.
2024-05-10 12:00:44 +10:00
1792c7ed8b
Fix tests following content move 2024-05-10 11:39:41 +10:00
2ff551147c
Merge sponsors.py into supporters app, frontpage.py into views.py
Just a small structural change so that the related functionality is grouped together.
2024-05-10 11:27:51 +10:00
44c0a9db32
Remove remaining jQuery
This avoids every page on the site parsing 250KB of JavaScript.

supporter-page.js isn't the most elegant code, but at least it's a little more
modular now and no longer user jQuery.
2024-05-09 22:15:33 +10:00
10dfdb617b
Convert further jQuery to plain JS 2024-05-09 15:43:53 +10:00
ccc036d631
Fix JS error 2024-05-09 14:10:10 +10:00
73e30c30e8
Further split up the supporter JS into functions 2024-05-09 14:06:39 +10:00
8a9f796eb1
Replace complex expanding JS with native <details> elements
Have retained the "expand all" behaviour - just with less code.
2024-05-09 13:53:50 +10:00
fb690c1676
Fix shirt size for monthly an annual renew 2024-05-08 18:05:27 +10:00
0d25e1a87d
Remove use of jQuery in conservancy.js
This is the first step towards removing jQuery from the site.
2024-05-08 17:23:45 +10:00
7b1ffebcfb
Add "use strict" on JS 2024-05-07 11:00:14 +10:00
985a08545d
Fix lint warnings 2024-05-07 10:59:46 +10:00
83b05a3ae2
Begin jQuery removal 2024-05-07 10:46:34 +10:00
83550a56a3
Set ownership during deploy 2024-05-07 09:48:36 +10:00
6a8515358b
Merge "supporter" and "supporters" apps
It's a little confusing having both a "supporter" and "supporters" app. This is
a fairly minor change to move the sustainer banner urls/views into the existing
"supporters" app. The functionality isn't directly related, but it is all about
sustainers.
2024-05-07 09:47:47 +10:00
c6e531a01f
podjango: Use feed title from database 2024-04-26 16:33:55 +10:00
968c0c4fba
Move media to top-level directory 2024-04-26 16:26:51 +10:00
d2561fbc41
podjango: Configure uploaded media directory 2024-04-26 16:13:00 +10:00
1a05c6391c
podjango: Upload icon per podcast 2024-04-26 16:07:20 +10:00
956f8c6fda
podjango: Add "Podcast" model to support multiple podcasts
Each Cast (episode) can belong to one or more Podcast, allowing episodes to be
shared between podcasts. This enables us introductory episodes to be delivered
in their own feed, but also included in the main "The Corresponding Source"
feed.

This required adding an additional `podcast_slug` argument to most views. The
date archive views were dropped because they're not linked to from anywhere.

Added a `podcasts` view as an index of all available Podcasts.
2024-04-25 15:32:24 +10:00
9447528938
podjango: Combine templates into a single directory 2024-04-25 15:29:10 +10:00
5e2bef0c7a
podjango: Remove incomplete "query" view/URLs 2024-04-24 17:49:26 +10:00
e01c27ea3e
Fix lint warnings 2024-04-24 17:38:22 +10:00
Paul Visscher
b1fe2483ae update date 2024-04-16 16:09:25 -04:00
495f841d39
contacts: Add field to represent the mailout the unsubscribe came from 2024-04-10 16:18:51 +10:00
9c01770b3c
contacts: Allow email via POST or GET parameters 2024-04-09 23:06:52 +10:00
789d0c8c84
contacts: Remove ContactEntry and add Unsubscription
This change removes the unused `ContactEntry` model and the `subscribe` view and
replaces it with an `Unsubscription` model and an `unsubscribe` view. It works
similarly, but is intended to be used with the `list-unsubscribe` and
`list-unsubscribe-post` headers.
2024-04-09 22:53:24 +10:00
ef3dd503d8 touch up fossy proposal page 2024-03-29 09:20:08 -07:00
91c6238ab3 better picture of SMSU and update submission date 2024-03-28 13:11:45 -07:00
c42add78d4
Update .gitignore for moved secrets file 2024-03-22 12:21:34 +11:00
c1b2375abd
Note to-dos 2024-03-22 12:18:03 +11:00
95eda99159 Add Vizio summary judgement 2024-03-22 01:16:30 +00:00
db39fbb446
Remove unused static/error templates 2024-03-22 11:23:19 +11:00
b7dcfa4a9b
Remove summit_registration Django app
Has some typos suggesting that the code was never completed or used.
2024-03-22 11:19:05 +11:00
374ec19b77
Defer JavaScript loading
This avoids waiting for the JS to download before rendering the page.
2024-03-22 10:39:06 +11:00
da121e5eb4
Specify encoding for templates in case it's not the default 2024-03-22 10:10:57 +11:00
fe64a26a72
Move the content templates/files into conservancy/content
These were previously intermingled with the static content in `conservancy/static`.
2024-03-22 09:34:20 +11:00
16b2165de7
blog: Retain author/tag when changing pages in entry_list
Denver noted that the author query string was being lost when you select a page
by page number. This change fixes it.
2024-03-21 15:18:22 +11:00
02ca52e2f0
Fix typo 2024-03-21 13:54:49 +11:00
79361cdf97
Move fundraiser calculations to model
This changes simplifies the template and adds correct pluralisation of
hours/hour remaining.
2024-03-21 13:20:30 +11:00
28f3b8de08
usethesource: Allow logged in users to edit/delete their own comments only
Unless of course they're given the "change comment" and "delete comment"
permissions, with which they can change or delete any comment.
2024-03-21 11:51:57 +11:00
c962a1d100
Set USE_TZ = False to avoid default changing in Django 5 2024-03-21 09:53:19 +11:00
440b4f864a
Use decorator syntax to register admin handlers
Same-same, just marginally neater.
2024-03-21 09:35:00 +11:00
6c91a14f6b
Remove unused CCS upload template 2024-03-20 17:10:32 +11:00
eb3ceb1d86
Move copyright assignment templates into Django app 2024-03-20 17:10:16 +11:00
382952a6ad
Remove unnecessary admin.autodiscover()
Since Django 1.7 this is done automatically.
2024-03-20 17:01:10 +11:00
618bb1e83d
Rearrange urls.py to distinguish the content pages 2024-03-20 16:51:28 +11:00
6179988005
Remove unused /coming-soon.html page 2024-03-20 16:45:49 +11:00
661603c3be
Fix tests 2024-03-20 16:25:02 +11:00
43e7c7e358
Drop djangocommonsettings.py from ignored files 2024-03-20 16:03:38 +11:00
477a5d0ef5
Add linkcheck script 2024-03-20 15:54:18 +11:00
1cfe805689
Handle trailing slashes in static content 2024-03-20 15:45:46 +11:00
5fa226284b
Delegate management of canonical URLs to Apache
This middleware is mostly redundant:

 * redirecting to canonical URLs can be done more simply in Apache
 * appending a forward slash is a default in CommonMiddleware now
 * we're no longer using Squid cache

May need to update Apache to strip/redirect trailing "index.html".
2024-03-20 14:54:54 +11:00
c795e1799c
Move secrets.json to top-level 2024-03-20 14:42:10 +11:00
d0464e870c
Fix strange issue with ParameterValidator settings
When imported at top-level, `settings` was a Python module, rather than a Django
settings object. Not sure why.
2024-03-20 14:32:44 +11:00
2b709f61e0
Make bin/deploy abort if there's an error with git push
For example, your push failed because there's upstream changes.
2024-03-20 14:18:59 +11:00
e93f864e0e
Update bin/deploy to use production settings 2024-03-20 14:18:46 +11:00
fedab3120b
Specify the production settings in wsgi.py 2024-03-20 14:15:20 +11:00
3826b6fb66
Switch settings to use "the one true way" approach
The advantage of this approach is that the production and dev configurations are
in version control, so there's less opportunity for surprises.

As advocated by Jacob Kaplan-Moss (OSCON 2011) and Two Scoops of Django book.
2024-03-20 14:10:00 +11:00
fe4112c879
Remove duplicate date_within template tag 2024-03-19 22:20:13 +11:00
283bb5d330
Add missing migration 2024-03-19 22:14:55 +11:00
2bf73e35fa
Upgrade to Django 4.2 LTS 2024-03-19 22:14:20 +11:00
0b9ab6970c
Remove deprecated ifequal and ifnotequal tags
These have been replaced by `{% if x == y %}` type tags.
2024-03-19 22:01:53 +11:00
c80ed09d70 add AlliterativeAdvising logo 2024-03-18 13:23:58 -07:00
6f618e110f
Fix /fossy/community-tracks/ 2024-03-18 18:47:39 +11:00
33833e3a33
Convert remaining url routes to path/re_path 2024-03-18 18:38:30 +11:00
8b805b313e
Switch main urls.py to use path 2024-03-18 18:24:31 +11:00
922afef356
Switch from url to re_path for static views 2024-03-18 18:17:09 +11:00
fc308958fa
Fix contractpatch urls 2024-03-18 18:03:15 +11:00
0ad369ebb9
Tidy-ups 2024-03-18 17:59:56 +11:00
2a99a0c81a
Switch from url() to path()
Path is the new way to handle simpler routing rules.
2024-03-18 17:51:33 +11:00
c4f88bd931 update fossy track proposal submission 2024-03-17 10:56:33 -07:00
4650f685bb change mentions of first on fossy landing 2024-03-17 09:57:40 -07:00
d
3b74e8430f fossy 0224 update! 2024-03-16 11:01:02 -07:00
cc424bb964
Switch from "restart apache2" to "reload apache2"
No need to do a full restart. Reload will be marginally faster.
2024-03-16 09:07:11 +11:00
Denver Gingerich
84daddb4ff usethesource: update disclaimer per SFC public MUC 2024-03-15 14:31:27 -07:00
5605243dfd
usethesource: Add some space between comment name/date and text 2024-03-15 19:41:54 +11:00
9ff4682420
usethesource: Allow comments to be attributed to non-account holders 2024-03-15 18:49:48 +11:00
296f29c84b
usethesource: Add candidate option to show/hide download disclaimer 2024-03-15 18:39:49 +11:00
c0a4fe5f39
usethesource: Add checkbox to opt-out of posting comment to mailing list 2024-03-15 18:21:59 +11:00
250db691e4
Document the new deployment approach
Also mentioned linkchecker.
2024-03-13 15:55:00 +11:00
3069a72763
Remove conservancy-www-update timer-based deploy 2024-03-13 14:50:48 +11:00
cba71044a2
Prevent test giving false-negative if settings.py moved 2024-03-13 14:45:36 +11:00
62823a9493
Rename bin/deploy.sh to bin/deploy 2024-03-13 14:26:41 +11:00
daf93dc32b
Switch content tests to pytest 2024-03-13 14:26:01 +11:00
94c56bb468
Rewrite the index view to avoid risk of path traversal
I've simplified this view by removing the custom HTTP error handlers, Python 3.5
exception handling and adding documentation.
2024-03-13 13:16:29 +11:00
Denver Gingerich
e50baa3f96 usethesource: delete moot timeline on CCIRT page 2024-03-12 17:27:04 -07:00
Denver Gingerich
436dc012b3 usethesource: long waits are over, so delete note 2024-03-12 16:51:52 -07:00
9fecb37c61
Update the path to templates in index() 2024-03-06 19:02:00 +11:00
dd27742114
Move Python code out of the "conservancy/static" directory
Having Python code in "conservancy/static" is a bit suprising to people familiar
with Django. The name "static" is usually reserved for assets like CSS, JS and
images.

I'm moving `conservancy/static/views.py` to `conservancy/views.py` and removing
`conservancy/static/__init__.py`.
2024-03-06 18:46:40 +11:00
d461c1bc86
podjango: Add The Corresponding Source logo to feed 2024-03-06 17:34:48 +11:00
f06b631093
usethesource: Add missing migration 2024-02-27 19:10:04 +11:00
af83b40af2
fossy: Add date hierarchy in admin 2024-02-27 19:09:48 +11:00
6c24b00fe3
fossy: Add created_time to CommunityTrackProposal model
Also move templates into app.
2024-02-27 19:01:31 +11:00
3ef31ebe43
Fix broken video links 2024-02-27 10:27:25 +11:00
aa26e2f7f0
Fix mistaken rename
I meant to rename the deploy script, not the deploy directory.
2024-02-27 10:23:18 +11:00
d8a702c8c9
Load images via staticfiles 2024-02-27 10:19:38 +11:00
7074802d50
Load favicon via staticfiles 2024-02-27 09:50:07 +11:00
dcdb976cd6
Push to remote first during deploy 2024-02-27 09:43:07 +11:00
18de3adfce
Similarly load CSS via Django staticfiles app 2024-02-27 09:34:11 +11:00
caa0ff7b86
Load JS through Django's staticfiles app
This avoids the need for adjustments during development and allows production to
be served under a single /static declaration in Apache.
2024-02-27 09:25:05 +11:00
279f1deae5
Remove reference to old jQuery
This was 404ing anyway.
2024-02-27 09:22:08 +11:00
55ee5b53b6
Add a basic script to "push" deploy
Currently updates are published by the "conservancy-www-update.sh" that does a
"pull" deploy with a 5-minutely job that runs on the web server. This doesn't
run `migrate`, `collectstatic` or restart the application, so certain types of
changes don't take effect, and even template changes often don't due to caching
template loader.

This script allows you to deploy more significant updates on-demand, but
requires SSH access.
2024-02-23 15:39:54 +11:00
49e3c43299
poddjango: Further lint fixes 2024-02-23 15:06:59 +11:00
75e3ab4d35
podjango: Fix linting warnings 2024-02-23 15:02:04 +11:00
ffa2889acb
podjango: Use or_ instead of lambda
Easier to read.
2024-02-23 15:01:01 +11:00
e7f21fa253
Remove unused ccs-upload feature
Use the Source uploads now go to a NextCloud anonymous upload.
2024-02-23 14:51:04 +11:00
ea271641d4 update path -- website/systemd is now website/deploy/systemd 2024-02-13 10:51:04 -05:00
46a5e89718 Add FY2022-23 Form 990 to website 2024-02-13 07:41:11 -08:00
903c68b7ad Add FY 2022-23 audit report; update transparency page accordingly 2024-02-13 07:16:56 -08:00
28326ce7e1
Add "The Corresponding Source" to menus 2024-02-09 23:05:54 +11:00
7933ca5f71
podjango: Pluralize to /casts/ 2024-02-07 14:29:35 +11:00
a790bce31a
podjango: Shorten feeds links 2024-02-07 14:25:45 +11:00
97bf39bd6d
podjango: Remove FaiF reference 2024-02-07 14:23:55 +11:00
b3044cbeda
podjango: Comment out itunes link pending update 2024-02-07 14:19:28 +11:00
38db5039d9
Move /cast/ to /cast/the-corresponding-source/
This makes room for addition of other podcasts later.
2024-02-07 14:19:28 +11:00
0b3cab24f7 Change to SFC contacts. 2024-02-06 19:15:43 -08:00
a5364bc9b8 Fill paragraph, no changes otherwise. 2024-02-06 19:13:38 -08:00
6ce976e63a
podjango: Temporarily filter out episodes prior to 2024 2024-02-07 11:03:56 +11:00
4a2ed6714a
Move ALLOWED_HOSTS into local settings (djangocommonsettings.py) 2024-02-06 21:59:31 +11:00
e246c530c4
Remove commented out XViewMiddleware 2024-02-06 21:58:36 +11:00
cdb31327ec
Remove DEBUG = False as it's the default 2024-02-06 21:52:59 +11:00
456d1c1630
Remove outdated copy of Apache config
This isn't being deployed from the repository and is a couple of servers out of date.
2024-02-06 21:40:01 +11:00
8f51e10819
Move deployment-related systemd config into "deploy" subdirectory 2024-02-06 21:39:18 +11:00
Denver Gingerich
afe2382e49 usethesource: candidate rounds explainer sentence 2024-02-04 23:04:39 -08:00
Denver Gingerich
7743cc86ea usethesource: clarify when/where comments posted 2024-02-04 23:03:31 -08:00
Denver Gingerich
2e5138d10a usethesource: update blog post refs on CCIRT page 2024-02-04 22:45:24 -08:00
Denver Gingerich
7624781a14 usethesource: capitalize "the" (mostly What We Do) 2024-02-04 22:34:43 -08:00
f438be339e
usethesource: Add "See more" link 2024-02-05 11:15:23 +11:00
Denver Gingerich
dd5cff8057 usethesource: update SFC front page top right tile 2024-02-02 23:07:41 -08:00
Denver Gingerich
27740b1dd2 usethesource: add link to blog post on CCIRT page 2024-02-02 22:57:01 -08:00
Denver Gingerich
5656bd3062 usethesource: add to What We Do - getting real! 2024-02-02 21:50:20 -08:00
Denver Gingerich
13bca4c509 usethesource: use production mailing list now 2024-02-02 20:44:17 -08:00
Denver Gingerich
9cb91f94f0 usethesource: submission guidelines fix, CCIRT lnk 2024-02-02 20:09:52 -08:00
Denver Gingerich
7085e8ed01 usethesource: fix second CCIRT image link, ongoing 2024-02-02 19:51:07 -08:00
Denver Gingerich
42cf606847 usethesource: thanks, Tracy for the CCIRT diagrams 2024-02-02 19:45:49 -08:00
Denver Gingerich
bca1c50f86 usethesource: fix plurality of OSPO abbr in CCIRT 2024-02-01 22:16:55 -08:00
Denver Gingerich
5ed4be23d3 usethesource: fix end tag for OSPO abbr in CCIRT 2024-02-01 22:16:03 -08:00
Denver Gingerich
9c118c85ad usethesource: add OSPO abbr in CCIRT process page 2024-02-01 22:14:06 -08:00
Denver Gingerich
1493bafa85 usethesource: linkify email addr in CCIRT process 2024-02-01 22:12:42 -08:00
Denver Gingerich
932b6a0515 usethesource: add AoE abbr's to CCIRT process page 2024-02-01 22:06:57 -08:00
Denver Gingerich
bd5cab1476 usethesource: HTML-ify CCIRT process paragraphs 2024-02-01 22:01:52 -08:00
Denver Gingerich
6c52f28d6a Use The Source: add initial CCIRT text 2024-02-01 21:59:35 -08:00
25906c7697
Improve Docker docs 2024-02-02 13:38:27 +11:00
c63bccaacc
usethesource: Add placeholder for CCIRT process 2024-02-02 12:48:48 +11:00
fc9c562900
usethesource: Update "Submit a Candidate" text 2024-02-01 16:05:05 +11:00
4bb2a603b2
usethesource: Add line breaks and linkifying to landing page descriptions 2024-02-01 12:12:15 +11:00
df4c284d57
usethesource: Fix bold 2024-02-01 12:09:36 +11:00
1fce9f4548
usethesource: Update intro text and comment spacing 2024-02-01 12:06:49 +11:00
dddf6058a9
usethesource: Linkify URLs in description and comments, retain line breaks 2024-02-01 10:37:31 +11:00
6c652f10c6
usethesource: Add link to mailing list 2024-02-01 10:22:23 +11:00
a7517825a3
usethesource: Reword "source candidate and firmware image" in email 2024-02-01 10:10:05 +11:00
2a23a0a55e
usethesource: Add comment time field 2024-02-01 10:05:11 +11:00
9158aff702
usethesource: Fix typo in email signature 2024-01-31 12:33:47 +11:00
c287dac433
usethesource: Make email addresses configurable 2024-01-31 12:28:45 +11:00
8f58ae83e0
usethesource: Add button icons 2024-01-31 12:28:37 +11:00
f2bbfc9e56
usethesource: Add menu item (commented out for now) 2024-01-31 11:10:38 +11:00
60e88d2ab1
usethesource: Tweak margins 2024-01-30 23:24:18 +11:00
1b1e2b994f
usethesource: Page titles, big buttons, sub-headings & edit link 2024-01-30 23:19:42 +11:00
3cccc3bdd9
Email announcement about new UTS candidate 2024-01-26 17:49:03 +11:00
cadd69061f
Mirror UTS comments to an email list 2024-01-26 16:47:06 +11:00
Denver Gingerich
6ceb113ab0 copyleft-compliance: Fix title on Principles page
The changed text appears to be what goes in <title/> and thus didn't
help the reader much before this change.  In particular, I suspect
that the prior <title/> did not help our search engine ranking much
for searches on this topic.  So hopefully this change helps a bit.
2024-01-19 16:42:15 -08:00
Denver Gingerich
27e5a92a09 usethesource: Add link to upload form, extra instructions 2024-01-19 16:34:27 -08:00
daa27e0d5d
typo in glossary 2024-01-18 08:33:24 -08:00
fa5b1e9502
add id to sustainers on sponsors page 2024-01-17 11:17:16 -08:00
9a86e067e2
add Christoph Hellwig as sponsor 2024-01-16 13:11:31 -08:00
9b71a520a0 Rework text to note the match has been made
Rewrite this text so that it indicates that we made the match.  Note
that the numbers are *hard coded* and as such need
updating (particularly the $1,942).
2024-01-16 06:48:36 -08:00
0680c58853 Display donation bar, noting it's results, for 1 week after end
The fundgoal section is now always included, but an if statement now
wraps the entire (partial) file, which will only generate any content
if it's not more than  one week after the fundraiser has ended.

Add an else that indicates these are results if it is past the end of
the fundraiser.
2024-01-16 06:07:33 -08:00
b4a2b9c613 Calculate hours when only one day is left.
This {% widthratio %} trick is something I found online that didn't
require a django-math module to work, but I would have rather written
something that:

  (b) Could have a different message when there is only one hour
      left: “less than one hour left” (i.e., tested if hours == 1)

  (c) Will say “hour” instead of “hours” when there is exactly 1 hour
      left.
2024-01-15 21:16:06 -08:00
9071a60eb3
fix ifixit link on sponsors page 2024-01-15 16:21:48 -08:00
5584f539a8 Correct narrative text to match current situation & typo fixes 2024-01-07 19:19:34 -08:00
ab6bb1d6c7 link to judge's decision in Vizio summary judgment; fix formatting
Various issues with formatting, incluidng missing </a>'s and
incorrect <ul> <li> <ul> stuff.  I think this should make
presentation a bit better on website.
2024-01-07 18:52:00 -08:00
8d1f0022ed
order denying vizio msj 2023-12-29 12:05:49 -10:00
963a4d3442
add MSA link to vizio page 2023-12-29 10:38:41 -10:00
5cfc461a25 Correct typo, improve copy while I was at it 2023-12-16 09:40:55 -08:00
0e9c64f335
put travel policy amendment up top 2023-12-15 07:03:41 -10:00
a00e072ab5
add some 2023 sponsors 2023-12-14 11:55:24 -10:00
b902dcaaf2
update travel policy policies.git 2023-12-13
commit b78549cbc630463374e2bd50db187eedda9b75bd
2023-12-13 12:57:48 -10:00
0530cde96b
change Exit Zoom to fundraising text on frontpage 2023-12-11 10:59:19 -10:00
34da366efb Add SFC's motion for summary adjudication filed this week 2023-12-08 11:37:34 -08:00
a3c76778f5 Add PDF of our reply comments to Copyright Office on Generative AI 2023-12-08 11:36:01 -08:00
7c14f4b51f
add amicus curiae as featured term and to glossary 2023-12-07 10:08:08 -08:00
be19772c77
add dmca amicus brief 2023-12-06 14:10:28 -08:00
b3d68d5a69
add dmca renewal info to YearInReview 2023-11-28 13:21:25 -08:00
470acf2408
bump default donation amount without changing sustainer level 2023-11-27 12:06:29 -08:00
bc21a0b92f
Drop the unused /admin/doc/ route 2023-11-27 19:42:29 +11:00
ebb7866739
Switch CCS upload, copyright assignment, FOSSY and podcast components to use path()
This is the newer approach to URL routing in Django.
2023-11-27 19:40:06 +11:00
aef9d18eb4
Add docs to enable conservancy-www-db.path 2023-11-25 13:41:55 +11:00
a6897a0f72
Add the conservancy-www-db.path Systemd file
This runs the SQL update when the relevant file is modified.
2023-11-25 13:41:55 +11:00
1289717a6d
change text to be clearer about public acknowledgement 2023-11-24 10:50:29 -08:00
66c8b2c8ea
Add linkchecker Systemd service and timer
Doesn't yet email report of errors.
2023-11-24 10:49:45 +11:00
03e06738a0
Add conservancy-www-db.service to repository, document Systemd services 2023-11-24 10:01:34 +11:00
cfd495c246
Add to-do item for decoupling conservancy-www-db service from apache 2023-11-24 09:35:33 +11:00
3cd9f5e95c
Rename 2018_Josh-triplett.jpg 2023-11-24 00:30:49 +11:00
68d37eb38e
Add missing 2018_Josh-triplett.jpg 2023-11-24 00:19:09 +11:00
04449002e2
Add missing jwf-headshot.jpg image 2023-11-23 23:50:33 +11:00
4a75e1b19d
Remove duplicate FOSSY page 2023-11-23 23:01:44 +11:00
2da686019b
Add missing occ.jpg 2023-11-23 22:56:04 +11:00
37c9f0f282
Remove nesting of hidden sections on sustainer page
This makes the page more similar to how it has worked in previous years.
2023-11-23 14:41:27 +11:00
867d4f4e82
update tshirt for 2023 2023-11-22 07:37:59 -08:00
e3a8c4bd70
Fix the sustainer page expanding sections when no URL fragment provided 2023-11-22 22:17:59 +11:00
fc21070d8d
Note to-do item to improve sustainer page interactivity 2023-11-22 14:00:09 +11:00
bb2eab2968
fossy: check UUID format in the URL routing to avoid unhandled exception
Requests like /fossy/xyz123/ were causing an error due to "xyz123" not being a
valid UUID. We should just return a 404 in this case, which the URL routing will
now do automatically.
2023-11-22 13:58:20 +11:00
a557f2b335
Fix "expand all sections" second link
Issue was that the jQuery is using .children() to add the event handlers but due
to some changes to the HTML, the second link is no longer a direct child. I've
switched this to .find() instead.
2023-11-22 10:38:37 +11:00
abcbe1f7c9
change footer from twitter to X 2023-11-21 15:03:08 -08:00
ab4f61d48f
revert tshirt to 2022 2023-11-21 14:37:55 -08:00
f56124f455
change compliance language for yearinreview 2023-11-21 11:36:05 -08:00
59a37f36be
fix formatting for intro thumbnail 2023-11-21 11:11:22 -08:00
fa2230ea47
update tshirt design 2023-11-21 11:00:37 -08:00
6f2c444bb0
remove godot and add sourceware donate button 2023-11-21 10:14:06 -08:00
029043028a
add bbb acount instructions to yearinreview 2023-11-21 08:43:52 -08:00
3cca05cbb8
update dollar value for FOSS development 2023-11-21 07:58:12 -08:00
2231c4b1f7
fixes for yearinreview and add outreachy 1000th pic 2023-11-21 06:52:21 -08:00
e80f19ca0d
add pictures to yearinreview 2023-11-20 14:38:41 -08:00
9941965c36
add rick and pauls bios to site 2023-11-20 14:28:44 -08:00
c129c6934d
update fundraiser goal to cy2023-end-year-match 2023-11-20 14:13:20 -08:00
48c2f00556
update outreachy 2022/23 numbers for YIR 2023-11-20 09:28:31 -08:00
eee045b8c7
update YearInReview for 2023 fundraiser 2023-11-20 07:33:07 -08:00
b7b008a86b
usethesource: Simplify the promissory wording 2023-11-11 12:46:43 +11:00
e340f18ec9
usethesource: Require agreement to download 2023-11-10 16:35:46 +11:00
b8a626b955
add vizio pdfs to gitignore, they are on webserver 2023-11-02 11:37:41 -07:00
20866ebe0f
usethesource: Remove "tirelessly" 2023-11-02 08:40:41 +11:00
8cfe88d162 Apparently, someone moved the files from here without documenting it? Hopefully in right place now 2023-11-01 07:57:52 -07:00
05f6abd73a Comments for Copyright Office Docket 2023-6 2023-11-01 07:40:09 -07:00
2304bf3ff6
congrats to Allison and Laura for title upgrades :) 2023-10-31 10:13:50 -07:00
7a682ed6d0
usethesource: Add "ordering" field to determine candidate sort order 2023-10-31 09:31:28 +11:00
2f40b9c23b
usethesource: Emphasize "Use the Source" 2023-10-31 09:19:26 +11:00
e8a5d85c69
usethesource: Updating landing page intro text 2023-10-31 09:09:55 +11:00
d0e218cdb6
Update to-dos 2023-10-26 13:24:17 +11:00
5047e2f68b
Extend docs for local development and production deploy 2023-10-26 13:22:45 +11:00
5686e54386
Provide a default for DEBUG
This avoid having to specify it in the production environment config at all -
shorter config.
2023-10-26 13:19:11 +11:00
813446c568
Remove CONSERVANCY_SECRET_KEY
Use SECRET_KEY instead to minimise use of non-standard settings.
2023-10-26 13:09:50 +11:00
19be27702a
Add .dockerignore to ignore everything except requirements.txt 2023-10-26 12:44:23 +11:00
8ef3aa73b0
Add to-do file
This allows me to track improvements we'd like to make, but not necessarily
straight away.
2023-10-26 12:33:29 +11:00
9e45e8544a
Update and document Dockerfile 2023-10-26 12:31:52 +11:00
70b8aa07ae
Simplify settings and move some standard settings into settings.py
These were previously in djangocommonsettings.py, but don't ever vary between
development and production environments.
2023-10-26 12:28:29 +11:00
2f3fba359f
usethesource: Fix header image path 2023-10-25 23:04:59 +11:00
2cdebf1316
Apply directory changes to update script 2023-10-25 22:56:44 +11:00
1d60fb041b
usethesource: Add stars banner image 2023-10-25 22:51:45 +11:00
2d2ab565da
Update .gitignore to reflect directory structure changes
Also removed some unused ignore lines.
2023-10-25 16:55:40 +11:00
6d4fee3c3b
Update wsgi.py to reflect directory structure changes 2023-10-25 16:28:57 +11:00
ce6be591bd
Rename "www" directory to "conservancy" 2023-10-25 13:01:21 +11:00
531a97a3c9
Eliminate "conservancy" and "apps" subdirectories
The directory nesting is unnecessary here and confusing to navigate. I've moved
all apps to the project subdirectory, currently called "www", but soon to be
renamed "conservancy".

I've also moved manage.py to the top-level directory.
2023-10-25 12:36:39 +11:00
cc3224bb60
usethesource: Add data models, admin and frontend comment editing 2023-10-25 00:00:14 +11:00
905e5c918d
Add Use the Source mockup pages
This doesn't include any data models yet.
2023-10-25 00:00:14 +11:00
012bb1e7e4
Allow "outercontent" template block to use full page width
This allows us to create full-width layouts for specific campaigns.
2023-10-25 00:00:14 +11:00
1707c327e0
Add Apache proxy and proxy-http modules 2023-10-24 13:55:19 +11:00
e2b129b4b5
Remove unused conservancy_wrapper files 2023-10-20 17:37:17 +11:00
cd3eb3b10c
Remove unused modpythoncustom.py
We have used mod-wsgi for many years.
2023-10-20 17:34:07 +11:00
ddb85bd8c1
Fix podjango migrations
Required an updated following code restructuring.
2023-10-20 17:05:35 +11:00
838fdcbfa4
Move fundraising goal banner into a template include 2023-10-20 12:47:58 +11:00
e9bdb18b7e
Fix indentation in settings and urls modules 2023-10-20 12:47:30 +11:00
15ce31eedb
Further switch to relative imports 2023-10-20 09:54:35 +11:00
47a30a750a
Sort Python imports with isort 2023-10-20 09:52:39 +11:00
b7e2ce2a4d
Switch to relative imports
The relative imports make it clearer what code is within the project and where
it's coming from.
2023-10-20 09:45:53 +11:00
439f777bda
update frontpage featured term language 2023-10-19 06:54:06 -07:00
21cb41e58b
podjango: Factor out credits, feedback and license info
This makes it easier to keep up-to-date across multiple templates.
2023-10-19 17:52:48 +11:00
70d6eb7140
podjango: Link up "The Corresponding Source" title
This helps with navigating back to the home page.
2023-10-19 17:49:57 +11:00
acd2cef276
Merge podjango.apps.cast into main podjango module
It's much simpler if "podjango" is the name of the Django app with a single
urls.py etc. The reason this is required is because podjango was originally a
fully-blown Django website and now it's become a Django app within the
Conservancy website.
2023-10-19 17:21:53 +11:00
1b0603889e
Remove www/conservancy/static/admin
These files are copies from an old version of Django, causing display issues in
the newer Django admin. With the "staticfiles" app enabled, the recent versions
of these files are copied to /var/www/website/collected-static/ when you run the
"collectstatic" management command. For example:

sudo -u www-data /var/www/venv-website/bin/python manage.py collectstatic --link
2023-10-19 17:03:48 +11:00
dbc1cac2af
Fix links to forms.css, remove links to unused jquery-ui.css 2023-10-19 16:49:13 +11:00
43e3cbe7f1
podjango: Fix duplicate URLconf entry for "all oggasts" 2023-10-19 16:00:17 +11:00
05c7ed6647
assignment: Prevent unhandled error when fields not provided
This typically happens when a bot is submitting the form. This should be a
validation error rather than an unhandled exception.
2023-10-19 11:52:04 +11:00
cf359b6a64
Rename cast to "The Corresponding Source", move to URL prefix "/cast/"
Also improved detail view rendering where unclosed <ul> tags in the body
content HTML from the database were affecting the display of footer info.
2023-10-13 13:08:16 +11:00
45a1f64730
Update podcast feed title 2023-10-13 12:47:49 +11:00
d9d28cf439
Update podjango model __str__ methods for newer Django 2023-10-13 12:44:28 +11:00
9381e607cd
Automatically generate feed enclosure URL prefix 2023-10-13 12:41:20 +11:00
6393441126
Rename podcast to "The Corresponding Source" 2023-10-13 09:45:38 +11:00
1b439b3bd0
Remove hard-coded faif.us domain from feed enclosure URLs 2023-10-13 09:45:38 +11:00
136fecaaf1
update vizio case pages and menus 2023-10-12 12:15:22 -07:00
30bc4968e3
fix file names for transcript 2023-10-12 12:12:37 -07:00
31214bac7c
update vizio portions of website 2023-10-12 10:54:11 -07:00
2352082ec9
Configure mounting of /var/www/media 2023-10-12 11:52:40 +11:00
9e7c3a7709
Fix MP3 feed 2023-10-12 11:51:15 +11:00
bf64250aa3
podjango: Remove unused code and templates 2023-10-10 22:05:38 +11:00
d1960cf04c
Fix further podcast links, remove unused base template and CSS, improve layout 2023-10-09 12:50:42 +11:00
5e2cb22fb7
Similarly don't serve header logo from staticfiles 2023-10-06 16:53:27 +11:00
cdd475d9d6
Don't serve tachyons from staticfiles just yet
We need to consolidate the static files all at once.
2023-10-06 16:48:49 +11:00
84f04cfcbe
Remove default AUTHENTICATION_BACKENDS setting 2023-10-06 16:37:17 +11:00
0b54f5cc1a
Namespace podjango static files, use includes to reduce duplication, enable staticfiles app 2023-10-06 16:35:36 +11:00
382714e54f
Add FOSSY menu item to "What we do" menu 2023-10-05 22:12:16 +11:00
7fa679f795
Use reverse URL generation for detail view 2023-10-05 22:07:34 +11:00
293350658a
Fix broken template tag 2023-10-05 20:38:35 +11:00
edb349d12d
Fix reference to podjango detail template 2023-10-05 20:29:12 +11:00
c0acfde9c3
Merge FAIF "podjango" codebase into main sfconservancy.org site
It's a little awkward for now with podjango also having an "apps" module, but we
can clean that up later. I've excluded any JS and HTML that's likely not
required.

To accomodate this merging, I moved the templates into a "podjango" subdirectory
and, added a "podjango" namespace to the URLconf and converted a bunch of
hard-coded links to use the "url" template tag since there will now be a
"/faif/" prefix.
2023-10-05 19:26:42 +11:00
1e494a4e11
Update template BASE_DIR now settings have moved in a directory 2023-10-05 17:45:36 +11:00
6b95646cc7
Move TEMPLATES, AUTHENTICATION_BACKENDS and MIDDLEWARE into base settings
These don't change, so belong in the base settings.
2023-10-05 17:35:18 +11:00
fb9e7242b5
Update ALLOWED_HOSTS for new server
There's no need for the site to be accessed via IP or it's hostname.
2023-09-20 12:45:26 +10:00
49ca73f50e
Remove documentation reference to unused djangopw module
Code appears to have been removed some time back.
2023-09-20 12:29:51 +10:00
72914fa665
Document the CDN setup for hosting videos 2023-09-20 12:28:43 +10:00
6c0daf9410
Remove older Debian Dockerfiles 2023-09-15 21:59:00 +10:00
bc4c5deec4
Extend Ansible config 2023-09-15 21:49:19 +10:00
33e27a1e7a
Note libsasl2-modules requirement 2023-09-15 21:04:00 +10:00
9f87feb19d
Add postfix to ansible config 2023-09-14 23:44:10 +10:00
deea193a25
Update WSGI entrypoint to match standard Django 2023-09-14 22:04:37 +10:00
38dec75ddd fixup! Fix git merge during schedule update 2023-09-14 18:34:53 +10:00
d8019a11eb
Fix git merge during schedule update 2023-09-14 18:29:08 +10:00
3c79fa50b5
Add Ansible config 2023-09-14 18:23:04 +10:00
053504d099
Update "cleanup" and "update" services for Python 3 2023-09-14 18:14:22 +10:00
33513d5626
Remove unused files 2023-09-13 13:34:11 +10:00
cf3d7c6100
Add support for Debian Bookworm 2023-09-13 13:33:27 +10:00
05323a307d
Add support for Debian Bullseye
Added `on_delete` attributes, updated ForceCanonicalHostnameMiddleware for
compatibility and added Dockerfile for Bullseye.
2023-09-12 10:59:45 +10:00
aa6d3626be
Add Debian Buster dockerfile
Runs fine on Buster!
2023-09-07 23:27:33 +10:00
9e39d7eadc
Apply pyupgrade --py36-plus (but skip f-strings as we're on Python 3.5) 2023-09-07 23:15:48 +10:00
5900f347c4
Add Debian Stretch dockerfile 2023-09-07 23:03:10 +10:00
60010999d2
Remove use of python3-future 2023-09-07 22:59:23 +10:00
6c83c6289f
Update some dependencies 2023-09-07 19:46:14 +10:00
9a7a966f73
front news blurb to zoom 2023-08-16 14:47:35 -07:00
b9b29ba2c3
remove twisted as a member project 2023-08-16 10:24:26 -07:00
1094af3477 Switch video to version that blurs out people who requested not to appear on camera 2023-07-25 20:27:23 -04:00
79aff48e8e Fix typo 2023-07-19 12:25:46 -07:00
8b41823801 Change featured item on website to RHEL keynote. 2023-07-19 12:20:57 -07:00
00e8b88edb Add press releated to RHEL. 2023-07-12 08:17:34 -07:00
208c1ee8b5
intel sponsor logo for fossy 2023-07-06 13:11:44 -07:00
d158e38dd0 Red Hat last donated to SFC on 2020-03-27.
The logo should have been removed sooner, but they kept saying they
were going to donate again and never did.
2023-06-23 12:28:37 -07:00
ef73540a21
lwn sponsor logo for fossy 2023-06-22 13:59:55 -07:00
2c4bd211df
add fossy sponsor images 2023-06-19 11:30:24 -07:00
b878ec0825
fix ids for donation methods 2023-05-11 11:04:51 -07:00
52e9f271db
add sourceware to member projects 2023-05-11 10:59:14 -07:00
190d34148b
update Jeremy and Karens bios 2023-04-25 10:39:32 -07:00
4a7410366f
Show summary for first news item on front page 2023-02-14 09:02:52 +11:00
4ceb4b4ae2
Fix whitespace 2023-02-11 17:22:32 +11:00
8d48feb4c6
add fossy track cfp to main page 2023-02-09 12:43:54 -08:00
d4abaa3a17 Correct spelling error. 2023-02-09 12:43:14 -08:00
70e759e030 Improve copy in two places on frontpage. 2023-02-09 12:42:02 -08:00
bc1ed0a9d1 A bit more width for the video, remove <p>
Ok, that was too small, try this.
2023-02-09 12:39:17 -08:00
476a2c0f9f Try to improve look on front page. 2023-02-09 12:38:26 -08:00
af869ec5e3 Improve copy, move video, add auto-subtitle. 2023-02-09 12:34:05 -08:00
8716315b60 Put Karen's doctorate as our featured item.
The video may not work there, but going to try it.
2023-02-09 12:30:52 -08:00
f22ae3e4f4 Make proprietary relicensing the term of the week. 2023-02-09 12:29:32 -08:00
42d42becc6 Add Neo4J Expert report 2023-02-09 10:13:34 -08:00
ca52fb6d07
Fix old typo in CSS 2023-02-08 23:04:37 +11:00
5c0c8edb69
Display summary for first news item 2023-02-08 22:51:51 +11:00
c64e52d9e6
Improve the .small-left/right and .medium-left/right classes 2023-02-08 22:44:44 +11:00
bd5f44a7f6 More margin probably looks better here. 2023-02-07 14:13:51 -08:00
03673dae8c small right should have margin on the right. 2023-02-07 14:10:18 -08:00
87e621b642 Add small left 2023-02-07 14:03:36 -08:00
cf59bf2174 Add vtt subtitle/closed captioning for recent videos. 2023-02-07 13:53:20 -08:00
81eb4a74bb
fix fossy track submissions deadline 2023-01-31 11:15:16 -08:00
f1262cf7c5
front page news to reference compliance 2023-01-31 10:52:44 -08:00
6f8ab78ea5 FOSSY community track form: add deadline 2023-01-31 11:22:26 +11:00
d2174000e6 Update wording and fields for FOSSY community track form 2023-01-31 11:22:26 +11:00
6cb46c61d1 Add initial fossy app 2023-01-31 11:22:26 +11:00
d43fd1de15
Merge branch 'master' of ssh://k.sfconservancy.org/website 2023-01-30 08:56:07 -08:00
8a1cf6623b
update mastodon template to social.sfconservancy 2023-01-30 08:55:34 -08:00
e8844190ef
smile.amazon.com deprecated
add random file
2023-01-20 10:06:30 -08:00
2db2439700
smile.amazon.com deprecated 2023-01-19 11:51:16 -08:00
07781d6b97 Transparency — note that current fiscal year has not yet completed. 2023-01-18 12:04:26 -08:00
bacd1775bf Form 990 — FY 2018-19 — Fix missing <ul> 2023-01-18 12:01:29 -08:00
cb409dd8e1 Form 990 — FY 2018-19 — Add Form 990 & related for that year. 2023-01-18 11:57:00 -08:00
73eb213c8f Form 990 — FY 2021-22 — add CHAR500 for this FY as well. 2023-01-18 11:15:09 -08:00
e48aba4f88 Audit & Form 990 — FY 2021-22 — correct links to proper documents 2023-01-18 08:19:35 -08:00
2609c0511a Clarify filing year / fiscal year numbers
All of this is very confusing, because the IRS requires you use the
Form 990 for the year in which your fiscal year starts, but most
accountants tend to call the fiscal year by the year number of when
the fiscal year *ends*.  Plus, ours ends so early in the next
calendar year, that it's extremely confusing.

Normalize at least the text on the transparency page to use a
hyphenated FY designation, and also add what IRS considers the filing
year to be.
2023-01-18 08:17:42 -08:00
872a78a6af Form 990 & Audit — FY 2021-22 — Add docs & update transparency page 2023-01-18 08:13:11 -08:00
f498d8df16
ifixit is now a sponsor! 2023-01-11 08:21:05 -08:00
8d52392631
add large donor to /sponsors 2022-12-20 16:34:12 -05:00
c52c73ead9
jondale stratton supporter picture 2022-12-12 14:22:59 -08:00
8c7772a440
update google logo 2022-12-08 10:04:55 -08:00
66ff38ed95
add freedv to /projects/current 2022-12-07 14:07:06 -08:00
68d6041a72
add /fossy copy for launch 2022-12-07 10:10:16 -08:00
7742897abb
add fossy copy for launch 2022-12-07 10:07:22 -08:00
b598a425f8
fix mastodon in footer 2022-12-06 09:49:13 -08:00
2253e697e0
remove kate and add ids for other board members 2022-12-06 08:15:34 -08:00
3d82057440
fossy landing page copy 2022-12-05 15:20:09 -08:00
9a91d84adc
update denver bio for director of compliance 2022-12-05 13:17:00 -08:00
41bf32e10c
top level didnt seem to work, trying folder 2022-11-30 07:41:49 -08:00
3b2eab89a3
need to change urls.py for fossy to work 2022-11-29 14:01:20 -08:00
de3a48e587
add fossy landing page 2022-11-29 13:52:22 -08:00
5abb702683
remove duplicate paragraph 2022-11-29 07:29:13 -08:00
eeef1d8d19
update privacy policy last amended date 2022-11-28 12:32:45 -08:00
1f740f5128
add new tshirt design to /sustainers
fixed width on 'Become a Sustainer' button
2022-11-28 09:48:53 -08:00
2ba4db683d
add fundraiser progress bar for 2022 2022-11-22 14:18:25 -08:00
c27c3d8d55
update YearInReview for 2022 fundraiser 2022-11-22 10:33:22 -08:00
09dc3348a4
add tracy bio 2022-11-21 09:14:20 -08:00
d09f3b394b
Merge remote-tracking branch 'origin/tracy/add-bio' 2022-11-21 09:13:00 -08:00
f048daa8bf
announcement of copilot news from the register 2022-10-19 09:36:37 -07:00
Tracy Homer
ff56468bb9 Merge branch 'tracy/conflictofinterest' 2022-09-20 14:25:55 -04:00
d1e5f3ff77 Mike also resigned from Eval Committee 2022-08-09 09:54:32 -07:00
c272f4949f Publish conservancy-travel-policy.html revision 96a0a68c8e10ab4ea1f68faaf6573c141bbe7614. 2022-07-26 08:25:54 -07:00
Tracy Homer
699fe650c4 change 'his or her' to 'their', renewal every year instead of six months, removed requirement to send completed copy to general council 2022-07-20 17:14:07 -04:00
79e6860776
use utf-8 encoding to get local testing working
also patched urls.py for easier changing of static locations for
local testing
2022-07-06 11:21:07 -07:00
dda9702778
add GiveUpGitHub InThePress links 2022-07-05 12:56:51 -07:00
457bceb53f
update term of week for Give Up GitHub 2022-07-05 12:21:06 -07:00
ee57c97527 GiveUpGitHub: clarify this statement, it was confusingly worded. 2022-06-30 14:27:09 -07:00
b265655ba4 Give Up GitHub — correct title. 2022-06-30 13:59:54 -07:00
db404db7a9 Rework the list of options and some of the argument. 2022-06-30 12:25:40 -07:00
e0f25a9fdf GiveUpGitHub: fix various formatting errors and typos. 2022-06-30 11:53:02 -07:00
15c1e8cff9 GiveUpGitHub: Refill paragraphs and add Copilot non-consent info 2022-06-30 10:38:31 -07:00
ddb176c884
fix rdquo 2022-06-30 07:48:16 -07:00
a702ba38f2 GiveUpGitHub: move second occurrence of image a bit higher on page 2022-06-30 06:58:09 -07:00
594b838916 GiveUpGitHub: add logo a second time further down in page. 2022-06-30 06:45:20 -07:00
b9ca38e64a GiveUpGitHub: Add <div> to make image more reasonably sized. 2022-06-30 06:12:06 -07:00
294e581aff GiveUpGitHub: correct /img link 2022-06-30 06:10:06 -07:00
b78ad95686 GiveUpGitHub: Correct two links 2022-06-30 06:09:02 -07:00
71abfe2218 GitUpGiveHub: add id anchor for ICE issue. 2022-06-30 06:00:22 -07:00
cc1beee207 Add img link to GiveUpGitHub logo 2022-06-30 05:56:34 -07:00
422fe81426 Page needs a title! 2022-06-30 05:40:15 -07:00
0d0493568f Use <p> tags for longer <li> items on this page. 2022-06-30 05:39:59 -07:00
d98707b64a new top-level urls still need to be added here.
I forget why we had this set up this way, but I think this is the
right way to do it. 🤷
2022-06-30 05:34:00 -07:00
5f46a9bece GiveUpGitHub campaign: main page. 2022-06-30 05:13:40 -07:00
2ffb0795af
add GiveUpGitHub 2022-06-29 13:14:29 -07:00
7ed72fc3ac Add README.md templates for the GiveUpGitHub campaign. 2022-06-29 13:10:07 -07:00
Tracy Homer
4cf912823f added tracy to staff page 2022-06-29 14:01:48 -04:00
02c09f18d7
update Allisons bio 2022-06-29 09:57:22 -07:00
355cc07071
remove Mike from board and appoint Allison as Chair 2022-06-28 12:11:10 -07:00
803c076782
remove drupalNJ from current member projects 2022-06-24 10:22:22 -07:00
36c49c893d
update karens bio 2022-06-22 12:54:57 -07:00
c19623963e Change FY so it just list from and to dates. 2022-06-14 13:52:04 -07:00
60d93b2ffa Add various articles from the last few months. 2022-06-14 13:48:37 -07:00
93b07f3c47
remove Martin Michlmayr (tpm) from the board 2022-06-08 16:15:20 -07:00
06fbb8f05c Add copy of PDF Q&A here as well. 2022-05-16 12:08:49 -07:00
27c2434d02 Add copy of press kit here as well. 2022-05-16 12:07:04 -07:00
c94aaaaf35 Update Vizio box on main page to note remand win. 2022-05-16 08:30:56 -07:00
a8d5c3048e
update frontpage after hearing 2022-05-13 14:34:03 -07:00
7eef8e46b3 Update the Vizio notice. 2022-05-12 19:16:44 -07:00
2565767830 Handle tricky problems to get subtitles working on intro video
First and foremost, the mime type has to be supported by the web
server.  Either you have to add a `.vtt` mimetype, *or* just put it
as a `.txt` file.  I chose the latter since it doesn't require a
custom Apache configuration.

Second, even if you make it a `.txt` file, using a CDN does not seem
to work.  I suspect that maybe CDNs do really weird things with
mimetypes when they server them, or maybe the <track> element just
really doesn't like it when the URL is 301'd. 🤷

Anyway, with these two changes: using a `.txt` file, and hosting the
file locally, the subtitles now work properly!

Note, if you use the `default` attribute in the <track> tag, it'll
turn them on by default.  Leaving it off does allow the user to turn
them on in my tests in both Chromium and Firefox.
2022-05-12 17:15:30 -07:00
f0a78d5f9f Correct subtitle file name. 2022-05-12 16:12:55 -07:00
adb051f42f Add track tag for subtitles; make source tag HTML5 closed. 2022-05-12 15:59:53 -07:00
ba6f17394e Sustainer page — note about video; frontpage — wider; add youtube
Link to the Youtube version for browsers where <video> element
doesn't work.

Note on the sustainer page that folks should watch it to learn about
us.

Widen into the big box on front page.
2022-05-12 15:39:29 -07:00
4a7cbb6845
put intro video on first page and replace holiday card 2022-05-12 15:26:51 -07:00
cf36479427 Correct email addresses for copyright assignment form. 2022-05-02 08:23:24 -07:00
f0e7f5736c Make copyright assignment area live. 2022-05-02 08:05:02 -07:00
2a52ce5084 Remove various folks no longer involved with organization. 2022-04-13 11:33:20 -07:00
bac40a5f97 Link to article in the Register about Neo4j and AGPLv3 2022-04-08 05:20:21 -07:00
26a78afbfa
add taxinfo gpg key and update robots.txt with it 2022-03-31 12:53:38 -07:00
951682828c Switch alert box to talk about Neo4j 2022-03-30 10:31:38 -07:00
e162fec26d Financial — CHAR500 — correct name, it's not CHAR-500
It seems NYS doesn't put the hypen between “CHAR” and “500”, even
though we always did on these pages.  I'm not changing the names of
the old files in docs/, as it doesn't seem worth it, but I did change
the textual description inside the anchor tags.
2022-03-25 13:05:40 -07:00
675a1267ad Financial — FY 2020 — fix link to CHAR500
The document was already in the docs/ directory, there was just a
typo in this link here.
2022-03-25 13:04:55 -07:00
9be3344544 FY 2019 — Form 990 & CHAR500 — add PDFs and links to them. 2022-03-25 12:57:00 -07:00
869a7580ac Add deadline details on FY 2021 that just ended last month. 2022-03-25 12:57:00 -07:00
c38bd4cf35 Remove needless blank lines. 2022-03-25 12:57:00 -07:00
6b1ed75d7a
Handle UnicodeEncodeErrors from junk URLs. 2022-03-15 10:59:47 +11:00
90e75a3007
update jmp logo 2022-02-15 11:58:19 -08:00
88a491e291 Fix minor typo. 2022-02-01 17:19:49 -08:00
ec5d1a0ff0
assignment: pluralize copyrights, assign right for existing claims. 2022-02-02 09:31:25 +11:00
e3da223f8e
add open letter to front page of website 2022-02-01 09:46:05 -08:00
45fb3444b6 PDF of Open Letter to Biden administration 2022-02-01 09:11:07 -08:00
75eef37ddc
remove deb from eval, and some projects 2022-01-21 13:17:30 -08:00
71a9e62085 Financial — FY 2020 — CHAR500 — Add document to transparency page
Also, apparently NYS writes “CHAR500” not “CHAR-500”.  🤷
2022-01-19 08:23:27 -08:00
3416e8670f Financial — FY 2020 — Form 990 — List document on Transparency page 2022-01-19 08:16:39 -08:00
27cbe02650 Financial — Audit — FY 2020 — put audit report on Transparency page. 2022-01-19 08:11:26 -08:00
036589001e HTML formatting errors (stray tags) 2022-01-19 08:06:50 -08:00
5ead0257ae Financial — Audit — FY 2019 — Add audit report to Transparency page 2022-01-19 08:06:32 -08:00
ecaa98c375 Transparency — correct out-of-date details regarding filings. 2022-01-18 18:08:34 -08:00
5bef923cfe
Revert local development settings committed.
This reverts commit adf2229720.
2022-01-11 09:17:55 +11:00
adf2229720
Rename __unicode__ methods to __str__ following Django upgrade. 2022-01-11 09:13:46 +11:00
60616f4226
mdash html typos 2022-01-05 10:06:33 -08:00
f8f3cb2f36
increase font size for full match 2022-01-04 15:42:03 -08:00
7a49bf08d6
separate divs and add css for exceeded 2022-01-04 14:34:28 -08:00
c586ffb383 Make additional bar when time left with donation exceeding goal
This is a first draft of making another bar appear after the
completed "matched!" bar that will show how much extra we've gotten
beyond the match amount.
2022-01-04 14:05:16 -08:00
f22dd3306b
fix link to vizio update 2022-01-04 07:19:49 -08:00
59b705aac1
move holiday banner and put motion to remand info 2022-01-03 15:42:59 -08:00
2a808a58c6 Fix the anchor. 2022-01-01 20:19:21 -08:00
9b63f8642f
grammar fix 2021-12-29 10:29:38 -08:00
385863c6e7
change language around $1.7m 2021-12-29 10:20:42 -08:00
0d8ecb8471
add motion to remand to frontpage and update TotW 2021-12-28 18:07:57 -07:00
a4690092b5 Restore anchor for Supporters; #supporters URL links may be common 2021-12-27 13:01:28 -08:00
801b145757 Remove holiday greeting from every page. 2021-12-27 09:40:02 -08:00
a3b10fc24c Even more space is ok here. 2021-12-24 17:33:14 -08:00
792892b4dd Take up more of the screen. 2021-12-24 17:29:29 -08:00
d0045a9e7d Add CCS and add video to sustainer page. 2021-12-24 17:28:03 -08:00
60147dba8b Formatting improvement. 2021-12-24 17:23:55 -08:00
351e3dcb20 Use video tag instead of image with a link to the video. 2021-12-24 17:22:09 -08:00
b2be8f14e5 Remove stray character. 2021-12-24 17:17:12 -08:00
a543d38cb3 Slightly better formatting. 2021-12-24 17:16:35 -08:00
208dfe2681 Correct location of link. 2021-12-24 17:11:32 -08:00
7fe9c07ceb Add holiday card to banner at top for next few days
Also, fix a few URLs .
2021-12-24 17:08:47 -08:00
0db5e00516
visual postcard link and add to /sustainer 2021-12-23 16:52:45 -05:00
81cbfc96c4
add postcard to frontpage 2021-12-23 15:10:47 -05:00
cced60976a
add 2021 video postcard 2021-12-23 10:57:00 -05:00
ec780ab15f
add 2021 holiday card 2021-12-21 07:43:13 -08:00
e3e9493944
Merge branch 'ben/copyright-assignment' 2021-12-18 09:24:30 +11:00
9b7e412a40
assignment: Fix typo noted by Pam. 2021-12-18 09:22:21 +11:00
1c38ad0179
Revert removal of "safe" template tag from blog/news headlines.
Conservancy use HTML entities in their titles.
2021-12-18 08:58:53 +11:00
3227e4ce9f
remove number of sustainers 2021-12-17 09:43:02 -08:00
14abe07a4a
Remove unnecessary use of "safe" template tag.
This tag marks a variable as not requiring escaping by the template engine,
potentially creating cross-site scripting vulnerabilities, so shouldn't be used
unless absolutely necessary. In these cases, I don't think it's necessary.
2021-12-17 21:55:47 +11:00
d11ed137fa
Fix Django warning about old TEMPLATES_* settings. 2021-12-17 18:35:50 +11:00
b2e952f3b8
Fix URLconfs causing Django check warnings. 2021-12-17 18:14:50 +11:00
97899caf78
Remove URL slash prefix. 2021-12-17 17:27:26 +11:00
e9df3a0d7e
Remove unnecessary null=True on ManyToManyFields. 2021-12-17 17:25:38 +11:00
47fa2b3623
Disable copyright assignment URLs until we're ready to launch. 2021-12-17 16:56:07 +11:00
1ce6f36532
Merge branch 'ben/copyright-assignment' 2021-12-17 16:54:47 +11:00
7374c9f915
assignment: Accept current date anywhere on earth. 2021-12-17 10:54:47 +11:00
6e380dba29
assignment: Apply further wording updates from Pam/Denver. 2021-12-17 09:53:13 +11:00
c23f799fa1
add employer matching to /donate 2021-12-16 13:51:24 -08:00
26ac00e864
assignment: Allow today's date. 2021-12-11 11:29:13 +11:00
52c0eb8e6c
assignment: Mention 7 days on form. 2021-12-11 10:40:07 +11:00
c9a76ea17f
assignment: Fix period ends in email. 2021-12-11 10:25:57 +11:00
b0263491a0
assignment: Validate that end date is provided if you didn't choose open-ended. 2021-12-10 18:37:13 +11:00
530890f6ad
assignment: Apply Denver's requested changes. 2021-12-10 11:33:37 +11:00
c6b329f0cf
Fix validation. 2021-12-07 17:49:57 +11:00
3272a25a8d
Remove redundant call to super(). 2021-12-07 17:06:37 +11:00
35a8de7f07
Add missing template. 2021-12-07 17:02:04 +11:00
0565f9b308
Update the assignment form with feedback from Pam/Denver. 2021-12-07 16:55:45 +11:00
2b1fd9ab90
Add assignment date range. 2021-12-07 09:59:40 +11:00
e1481ce55e
Add migration. 2021-12-07 09:59:40 +11:00
780e0b8dbf
Add assignment thanks page. 2021-12-07 09:59:38 +11:00
a53a4560cd
Add assignment template. 2021-12-07 09:58:56 +11:00
a2675ee029
Prototype copyright assignment form. 2021-12-07 09:58:47 +11:00
32da708977
fix formatting for first <ul> and h4 2021-12-06 12:43:58 -08:00
035b55fb9e
add new articles to press coverage 2021-12-06 12:35:53 -08:00
45d2e0782b
Fix Unicode encoding issues. 2021-12-03 16:01:21 +11:00
5dcf4acbb3
Fix CSS selector. 2021-12-03 15:36:16 +11:00
80fd409ade
Fix Vizio CSS selector. 2021-12-03 15:19:28 +11:00
3c8f363537
Add selected highlight to top feature menu. 2021-12-03 15:04:54 +11:00
2a1e00eee2
Add missing forms.py. 2021-12-03 11:58:26 +11:00
889dbcf38c
Remove type annotation. 2021-12-03 11:43:01 +11:00
9a06def0e7
Add simple CCS upload (no JavaScript). 2021-12-03 11:38:21 +11:00
e11e6ff451 Update glossary term of the week to CCS. 2021-11-30 06:23:22 -08:00
1408bafea5 Shorten DMCA text in the call-out since news is getting stale. 2021-11-30 06:23:22 -08:00
c472eaeebc Remove stray “ 2021-11-30 06:23:22 -08:00
a45fcb395b
Remove problematic call to decode(). 2021-11-30 17:35:55 +11:00
2d078b0004
Apply futurize --stage-2 Python 2/3 compatibility transformations.
These changes specifically require the use of the "future" library.
2021-11-30 07:55:45 +11:00
457e5739f7
Add unique constraint to Staff.username.
Previously had some duplicates for "pono" which were causing
MultipleObjectsReturned errors. A username is generally considered to be unique.
2021-11-29 14:31:26 +11:00
843b24c63a
Don't send email notification on DisallowedHost error. 2021-11-29 14:21:14 +11:00
9b48cc94e6 Continuing saga of the sizing chart problems for original shirts
Gildan removed the sizing chart entirely from their website again
after yet another redesign.  Originally, we deep-linked into files in
their CDN for the charts, but it appears that in 5c72071 that I
introduced cut-and-paste error on the sizing charts.  I cannot find
the original links, but finally I simply decided we'd mirror the
files in our CDN, which is where these now link to.

I suspect that I didn't do this to start for worrying about copyright
infringement, but upon second thought, I think it's very reasonably
fair use for us to distribute these images.  We bought a lot of
t-shirts from Gildan and just trying to sell through.
2021-11-27 10:51:51 -08:00
f13940777f
Remove duplicate copy of manage.py. 2021-11-26 14:04:43 +11:00
7b981fcb52
Add a missed "object" change. 2021-11-26 14:03:24 +11:00
31e51a7742
Apply "object" changes only from futurize --stage2. 2021-11-26 13:49:40 +11:00
05bee8b3c3
Apply futurize --stage1 (safe) Python 2/3 compatibility changes. 2021-11-26 13:00:20 +11:00
69725698ae
Fix a encoding issues for future Python 3 support. 2021-11-26 12:41:27 +11:00
4c3661ad19
progress bar: Remove display-table vertical align workaround.
Was causing some display glitches on some browsers. Using nested flexbox instead.
2021-11-26 09:10:25 +11:00
a6dcb714b8 Remove one event per discussion with karen. 2021-11-23 10:12:55 -08:00
c4e1752a06 Rewrite help us continue and t-shirt sections. 2021-11-23 10:11:03 -08:00
a4df264490 Rewrite “Writing and Speaking” 2021-11-23 10:02:39 -08:00
9c3e362f93 Make the pun clearer with caps and quotes. 2021-11-23 10:02:22 -08:00
c951623774 Rewrite “New Staff” 2021-11-23 09:56:17 -08:00
38183285a9 Remove word "member" 2021-11-23 09:56:06 -08:00
5c9f70af7b Rewrite “Highlights from some of our member projects” 2021-11-23 09:49:24 -08:00
7e06d262ee Rewrite of “Our Year in Review” section; add links as well. 2021-11-23 09:25:41 -08:00
d1cc382a01 Reword opening sentence, add links as discussed in XMPP 2021-11-23 09:06:10 -08:00
02d8a44f83
add copy for 2021 donation page 2021-11-23 07:58:40 -08:00
1ddcb2e4ba
Move fundraising goal end times into database. 2021-11-19 17:56:44 +11:00
b4c438322c
Fix markup errors on "What We Do" causing layout issues. 2021-11-19 17:14:29 +11:00
68f5f1fa2c
Move sub-menus to RHS and re-enable on mobile. 2021-11-19 17:02:59 +11:00
26ff31bb78
progress bar: Drop JS, make mobile friendly, match design to new site.
The existing jQuery UI-based fundraising progress bar used a float layout,
making it hard to adapt for mobile use. Given that there is not interactivity,
I've dropped all the JS and switched to a flexbox layout. This works well
because the bar will stretch to fit the text rather than always maintaining its scale.
2021-11-16 13:25:39 +11:00
6bdc205e6a
update term of the week 2021-11-08 13:08:03 -08:00
b61d158ea9
make header box a link 2021-10-28 14:33:23 -07:00
29a4296f14
errant ) in link 2021-10-28 14:03:32 -07:00
0cbd204e2f
fixed wrongblurb, resetting vizio and replacing truth social 2021-10-28 13:57:08 -07:00
f820eddaff
change frontpage blurb to be about DMCA exemptions 2021-10-28 13:18:53 -07:00
bbc6eb13c6
fix mastodon link on frontpage 2021-10-25 10:45:50 -07:00
beb0dbfd82 Add <p> tag for my bio. 2021-10-23 17:58:44 -07:00
720b91a8cf Put complaint with journalist resources on main page. 2021-10-23 17:44:16 -07:00
7efaadaf0c Not necessarily third-party. 2021-10-23 17:42:37 -07:00
2290846c21 Shorten box on front page a bit. 2021-10-23 12:52:27 -07:00
399675d6c3 Rework blog menu order. 2021-10-23 12:50:28 -07:00
7229e78e0f Sidebar should disappear on small screens.
We've had a report that the sidebars are very distracting,
particularly for the blogs, on smaller screens.  This change to the
CSS will cause sidebars to disappear on smaller screens.
2021-10-23 12:42:59 -07:00
91d661f715 Conform title to title of blog post. 2021-10-22 14:23:39 -07:00
ee667f6179 Slug change propagation to static pages. 2021-10-22 14:20:33 -07:00
1b8a709d0c Make box smaller. 2021-10-21 20:47:51 -07:00
ec2cd619f2 Add additional call-out for current blog post. 2021-10-21 20:38:52 -07:00
eb6fc77708 Remove "The"s from top menu. 2021-10-21 20:36:41 -07:00
1bee33f278 Format like previous with the <p> solution
<ul> is the right HTML way to format these, but they are all too
close.  Get it to look more like it did with <p>'s with CSS.
2021-10-21 20:36:41 -07:00
eb847f9f32 Use typical way of putting the category in a block.
Django is so frustrating as it's never clear about how things trickle
up and down through templates, so move the category to the top like
the others.
2021-10-21 20:36:41 -07:00
501b6e091b
Merge branch 'master' 2021-10-21 13:56:05 -07:00
798d4aee8f
fix sustainer text and button for sustaining 2021-10-21 13:55:13 -07:00
1f6e2156f4 Additional fixes for menu items related to news and press
A few additional places where the news and press pages were not
properly menu integrated.  This fixes various inconsistencies and
missing category and submenu markings in menus.
2021-10-21 12:40:09 -07:00
a80c95fd13 Fix minimal start of ourcoverage.html and correct various problems
ourcoverage.html was a reasonable minimal start but not really ready
for production.  Make changes necessary to put this into production,
as follows:

  * Rename ourcoverage.html to vizio-coverage.html.  This is just
    Vizio coverage for now.

  * Order articles by most in-depth/interesting.  Verified this
    ordering by consensus with Conservancy staff.

  * mailto: link for press coverage on the main inthenews page, but
    don't use that on Vizio page; it's unlikely we'll miss any of the
    Vizio coverage.

  * use &mdash; instead of -

  * put quotes around article titles.

  * Add missing PR Web article

  * Switch from <p>'s to <li>'s in vizio-coverage.html

  * Fix menu issues.  09a4b02 outlined the issues regarding how to
    add items to menu; it does require a CSS change as explained
    therein; merely using the right `base_` is not enough

  * Improve menu integration.  Per PR people's recommendation, the
    Vizio stuff that also goes in other areas needs to be placed in
    multiple menus.
2021-10-21 12:34:22 -07:00
ee348bf69b
add bkuhn to /press and fix sustainers button 2021-10-21 12:18:26 -07:00
6fbf8b0690
Merge branch 'pono/supporter-updates' 2021-10-21 11:41:47 -07:00
88b57b2f32
formatting tweaks for /press 2021-10-21 11:40:35 -07:00
4c00e4e4af
create page for Our Coverage 2021-10-21 11:34:34 -07:00
63dee11c8a
fixup /press from Hannahs notes
a few s/supporters/sustainers/
add link to inthenews
update news and press menu
2021-10-21 11:29:40 -07:00
5348aae07b
add text describing sustainers 2021-10-21 10:39:32 -07:00
a90f18d77c
change svg to sustainer and remove tonys pic 2021-10-21 10:24:58 -07:00
4b99b5a1a7
delete 2020 donation text 2021-10-21 09:07:30 -07:00
4daf268345
new supporter image 2021-10-21 08:57:59 -07:00
3acdadcacc Learn page is not coming soon anymore! 2021-10-21 08:46:07 -07:00
357aacf99c Vizio — For compliance only, note resources are for Vizio
The Resources for Journalists are only related to Vizio, so make that
read that way on compliance pages that *are not* Vizio pages.
2021-10-21 08:45:08 -07:00
09a4b021c1 Repair menu highlighting, both for main menu and submenus
During the recent improvements made on the website, the menus and
submenu highlighting for selected menus fell into disarray.
Correction requires changes to the CSS and templates both, because
Django doesn't really have a convenient way to set variables in
templates to use to solve this.

There are still a few submenu items highlighting not working even
after this commit.  More work needs  to be done.
2021-10-21 08:39:47 -07:00
46adf33eb3
simplify /about, fix formatting on frontpage, svg img for supporters 2021-10-21 08:36:23 -07:00
814b629006 Copyleft Compliance — Vizio — update title to match newswire version 2021-10-21 07:21:28 -07:00
90928718b9 Copyleft Compliance — Vizio — add missing CSS menu item thing 2021-10-20 07:49:45 -07:00
3372ad11ef Copyleft Compliance — Vizio — Shorten a few menu item names. 2021-10-20 07:49:01 -07:00
8cc5c86d72 Copyleft Compliance — Vizio — Improvements to Menu selection. 2021-10-20 07:41:58 -07:00
2b480224ce Copyleft Compliance — Vizio — now with case number and court stamp 2021-10-20 07:30:24 -07:00
714fe4febb Copyleft Compliance — Vizio — Rename Complaint file for full name 2021-10-20 07:29:04 -07:00
7aff4102ab Copyleft Compliance — Vizio — Temporarily only just four news item 2021-10-19 13:06:59 -07:00
dc325f20f8
fixme on sponsors page points to /about 2021-10-19 12:18:35 -07:00
841c4ba647
add linux kernel and link for repair assoc. 2021-10-19 11:53:58 -07:00
fd2720f0c5 Copyleft Compliance — Vizio — Q&A is Compliance base, add PDF links 2021-10-19 11:06:10 -07:00
d938406aa8 fix /press to link to documents and media@sfconservancy.org 2021-10-19 11:06:10 -07:00
5d25ca30b7 Copyleft Compliance — Vizio — call it "Vizio Lawsuit" on menu. 2021-10-19 11:06:10 -07:00
22126bfdcb make description on front page bigger and fix TotW <p> 2021-10-19 11:06:10 -07:00
0911b0158e add back Vizio button on main page and Vizio into menu 2021-10-19 11:06:10 -07:00
e1c7423fc8 Copyleft Compliance — Vizio — "Special Message" was placeholder. 2021-10-19 11:06:10 -07:00
46ecddfe5a Copyleft Compliance — Vizio — fix typo in URL 2021-10-19 11:06:10 -07:00
66a04f2142 Copyleft Compliance — Vizio — temporarily put first line of PR here 2021-10-19 11:06:10 -07:00
b59115cfcf Copyleft Compliance — Vizio — put two links in Learn about it
This unreverts 613674c071
2021-10-19 11:06:10 -07:00
09ba320179 Copyleft Compliance — Vizio — Add complaint. 2021-10-19 11:06:06 -07:00
de2998db8d Copyleft Compliance — Vizio — initial announcement 2021-10-19 11:05:16 -07:00
613674c071 Revert addition from pono — Q&A link added too early
Commit 37d67fb1da included this link,
and it was brought in from a branch from pono.  Removing it
temporarily.
2021-10-19 09:23:45 -07:00
c328dc29b7 past litigation: add summary for top of page. 2021-10-19 09:20:18 -07:00
0d077f602b fix /press with links and media contact info 2021-10-19 08:36:32 -07:00
9a0cb169d1 update staff and bug fix for /news menu 2021-10-19 08:36:32 -07:00
895026ff66 Write section on Conservancy v. Best Buy et al & update VMware info 2021-10-19 08:36:32 -07:00
4669d6724d Generalize VMWare links page into a previous litigation links page
More will need to be added to make it true, this is the first step.
2021-10-19 08:36:32 -07:00
6fe4cbe1e4 Add Help Compliance page and put it on the menu. 2021-10-19 08:36:32 -07:00
20260b4390 Change "" to &ldquo; and &rdquo; 2021-10-19 08:36:32 -07:00
3bb2b9bccc frontpage: comment out image until we have a good one. 2021-10-19 08:35:41 -07:00
4d0d3a351b Temp remove additional call out links. 2021-10-19 07:38:56 -07:00
dd473e0a17 Fix breadcrumb link. 2021-10-19 06:50:26 -07:00
6cb4b45761 Filings ⇒ Transparency, necessary rename operation & related first
The Filings page will ultimately be part of the Transparency page,
but for now, just rename it in prep for  later changes.
2021-10-19 06:50:26 -07:00
ee815f8424 Make the sidebar selected state less subtle. 2021-10-19 06:50:26 -07:00
2c41970fbd Outreachy should be on “What We Do” menu; Copyleft Compliance first.
Note the FIXME in Member Projects class for menu selection; unsure
which one to use given the changes.
2021-10-19 06:50:26 -07:00
Daniel Pono Takamori
6a85213fea add more articles to In The News 2021-10-19 06:50:26 -07:00
Daniel Pono Takamori
2182ce5ae6 add learn coming soon 2021-10-19 06:50:26 -07:00
Daniel Pono Takamori
587e508b6f add /press and make that kit page
fix urls for press and learn
start work on new news partial submenu
2021-10-19 06:50:26 -07:00
c31ef840df page should have a <h1> title. 2021-10-19 06:50:26 -07:00
a98efefcf6 activities: add page for “What We Do”.
This is a first pass at content for the activities page, which is the
landing page for the top-bar menu item of “What We Do”.
2021-10-19 06:50:26 -07:00
ea035ced4e the class="MENU" goes with the <li> element, not <a> element. 2021-10-19 06:50:26 -07:00
fafc718086 Experiment to see if restoring class= for submenus fixes highlight. 2021-10-19 06:50:26 -07:00
0cdebcf8e5 Make copyleft compliance the term of the week. 2021-10-19 06:50:26 -07:00
b03ea99d4d Mailing list subscribe link should go to best we can get.
Ultimately, we'd like the button to be right on the front page, but
for now, at least go the subscribe page.
2021-10-19 06:50:25 -07:00
50296cf4f4 Note that special message is coming later today. 2021-10-19 06:50:25 -07:00
9f74456080 Make page look prettier. 2021-10-19 06:50:25 -07:00
bf88f1be1c Also need to add a URL for this to work. 2021-10-19 06:50:25 -07:00
e8bc561525 add coming soon file. 2021-10-19 06:50:25 -07:00
Daniel Pono Takamori
f8ed23db22 no-vizio 2021-10-19 06:50:25 -07:00
4b2bfccbe0 Fix a glitch in the pop-out donations box. 2021-10-19 06:47:58 -07:00
204ca5e9de Move donation sidebar to pop out at bottom. 2021-10-19 06:47:58 -07:00
Daniel Pono Takamori
aa2219fc09 temporarily(?) remove FAQs, Recommended Resources 2021-10-19 06:47:58 -07:00
Daniel Pono Takamori
a8978e6195 remove supporter header image 2021-10-19 06:47:58 -07:00
Daniel Pono Takamori
f2f4b10f1c remove donation sidebar from learn and press pages 2021-10-19 06:47:58 -07:00
Daniel Pono Takamori
2123cf0047 add base_learn and fix menus for glossary 2021-10-19 06:47:58 -07:00
Daniel Pono Takamori
e370250897 remove extraneous menu in body 2021-10-19 06:47:58 -07:00
Daniel Pono Takamori
28da60c642 add appropriate top level menu to sidebar 2021-10-19 06:47:58 -07:00
37d67fb1da Break submenus out into separately included files for reuse in sidebars. 2021-10-19 06:47:58 -07:00
Daniel Pono Takamori
8270a221b9 hannahs suggestions to /vizio 2021-10-19 06:47:58 -07:00
6ae57ee2c0 Improve sidebar and inline images on mobile. 2021-10-19 06:47:58 -07:00
aa688838b3 Fix issue with submenu items incorrectly marked as selected. 2021-10-19 06:47:58 -07:00
Daniel Pono Takamori
6eff762aaa add fixmes to /vizio 2021-10-19 06:47:58 -07:00
Daniel Pono Takamori
648c1c9073 change email to link Learn More to /about 2021-10-19 06:47:58 -07:00
Daniel Pono Takamori
fb1ecb2516 fix menu and make initial press kit 2021-10-19 06:47:58 -07:00
Daniel Pono Takamori
1c060f07d7 add vizio landing page under
use Press sidebar
2021-10-19 06:47:58 -07:00
Daniel Pono Takamori
4977fac4e8 start Q&A page
edit menu to remove About section and rearrange other items
2021-10-19 06:47:58 -07:00
Daniel Pono Takamori
b2c80f1b27 add initial press page, glossary and edit menus 2021-10-19 06:47:58 -07:00
Daniel Pono Takamori
f240980c85 add glossary and fixing Public Filings link 2021-10-19 06:47:58 -07:00
6308ba2edc add links to most about items
still need to add a page for Partners
and add:
  Learn More
  Special

  Public Filings
  FAQs
  Glossary
  Q&A
  Recommended Resources
  In The News
  Press Kit

  Who We Are
  Transparency
2021-10-19 06:47:58 -07:00
a0678ebc51 link Member Projects to /projects/ 2021-10-19 06:47:58 -07:00
9c209f8f50 use shoestring text 2021-10-19 06:47:58 -07:00
aa7f8e39cc update frontpage description 2021-10-19 06:47:58 -07:00
9a140f6988 Darken the selected menu item. 2021-10-19 06:47:58 -07:00
1bf3877244 Link up news breadcrumbs. 2021-10-19 06:47:58 -07:00
f14ac9523f Link up news menu item. 2021-10-19 06:47:58 -07:00
eeba7a3154 Add breadcrumb examples and expading FAQ sections. 2021-10-19 06:47:58 -07:00
f26c598c78 Display mobile menu above the supporter sidebar. 2021-10-19 06:47:58 -07:00
cdc05ffafd Only focus search if search button clicked. 2021-10-19 06:47:58 -07:00
e340b7010c Add mobile menu and DuckDuckGo-based search. 2021-10-19 06:47:58 -07:00
9ceb3afd1b Reduce homepage top margin. 2021-10-19 06:47:58 -07:00
bdda85c237 Apply max widths and margins to all pages.
Due to the varying types of layouts used and the short time-frame the best
option seems to set a max-width etc. around the "outercontent" block. For now
this means we can't do "full bleed" body content, but that's not currently used
anyway.
2021-10-19 06:47:58 -07:00
c41efe0e0b Overhaul header, first pass at second level navigation. 2021-10-19 06:47:58 -07:00
bde54db0c4 Rename "supporter" to "sustainer" in templates and URLs.
Does not rename the models.
2021-10-19 06:47:58 -07:00
81bc61fdf8 Remove "Donate" link from main menu. 2021-10-19 06:47:58 -07:00
5e95851b83 Switch to SVG logo.
Will look better on mobile.
2021-10-19 06:47:58 -07:00
cea24db788 Tune up frontpage news/blog items and term of week, add call out section. 2021-10-19 06:47:58 -07:00
d7696f5372 Add missing </div> tag. 2021-10-19 06:47:58 -07:00
d39c7e49fe Hide RSS icon for frontpage news and articles. 2021-10-19 06:47:58 -07:00
5672713148 Add link and button focus/active states. 2021-10-19 06:47:58 -07:00
0ac747949a Fix frontpage column alignment and subscription box. 2021-10-19 06:47:58 -07:00
011b8e71fb Add meta-viewport for mobile device support. 2021-10-19 06:47:58 -07:00
87ab0307e7 First-pass implementation of new design for home page.
Uses a combination of CSS changes and Tachyons classes to implement the design.

Adds the non-minified Tachyons CSS library itself and SVG icons from Font Awesome.
2021-10-19 06:47:42 -07:00
32dd831a50 First-pass implementation of new design for home page.
Uses a combination of CSS changes and Tachyons classes to implement the design.

Adds the non-minified Tachyons CSS library itself and SVG icons from Font Awesome.
2021-10-19 06:32:45 -07:00
128529dc6a
Crop the dots out of the header banner. 2021-10-13 21:30:02 +11:00
fca73608c2
Count supporters in the database - it's faster. 2021-10-13 21:20:58 +11:00
26682bc158
Remove unused import. 2021-10-13 21:20:24 +11:00
6b93065f17
add picture of tweet for cyborg article 2021-08-24 09:01:04 -07:00
Daniel Pono Takamori
095e851a5f
change chat info to new xmpp stuff 2021-06-21 16:21:46 -07:00
Daniel Pono Takamori
add1d02523
change freenode to libera 2021-06-11 16:14:42 -07:00
a72ff8377c Try two press releases at a time on the front page. 2021-05-14 08:16:31 -07:00
Daniel Pono Takamori
24f7b3ec74
adding picture of Pono for blog
Signed-off-by: Daniel Pono Takamori <pono@apache.org>
2021-05-12 18:58:26 -07:00
Brett Smith
9f08666e5a sponsors: Add jmp.chat. RT#13070. 2021-04-02 09:22:42 -04:00
Brett Smith
e25168ad2f supporter: Update contact email address.
Mirroring the recent donate changes.
2021-03-30 14:05:45 -04:00
Brett Smith
4f542c24c2 donate: Typo fix. 2021-03-30 13:19:49 -04:00
Brett Smith
8bb65a9a39 donate: Refresh the page throughout.
* Put more common donation methods higher up.
* Delist Flattr.
* Update the list of foreign currency accounts we hold.
* Update the section about donating to member projects.
* Wordsmith throughout, primarily to avoid accounting jargon and
  abbreviations, and use fewer exclamation marks.
2021-03-30 11:57:37 -04:00
6b01e47753 Still too many blog posts on the front page. 2021-03-25 12:33:42 -07:00
4da324d74a Update verbs as needed for congruence with previous change. 2021-03-25 12:30:43 -07:00
4c852afa26 Remove items that are time-focused; adapt for Conservancy's site 2021-03-25 12:24:28 -07:00
68c8c42674 Woah, too much old blog content on front page. 65 days better. 2021-03-23 19:01:15 -07:00
90749c7d71 Tweak front page time delays and listings a bit. 2021-03-23 18:54:52 -07:00
07cece4b6c Remove logos from entities that no longer sponsor. 2021-03-04 10:26:55 -08:00
47acd92bf0 PIA did not pay for sponsorship. 2021-03-04 10:24:46 -08:00
dc8283c865 Josh Triplett renewed at lower level; appears as a regular Supporter 2021-03-04 10:23:46 -08:00
Brett Smith
2d60351663 projects: Add Drupal NJ. 2021-02-10 09:38:21 -05:00
Brett Smith
ac6f4ca635 sponsors: Add Indeed. RT#13971. 2021-02-10 09:26:33 -05:00
26057847d6 Screen shot of Organizers Panel. 2021-02-08 11:56:04 -08:00
Brett Smith
74a5997535 img: Add Jeremy Allison photo. 2021-01-14 17:18:49 -05:00
914d2c416f Fundraising: Vintage T promotion now $256 instead of $512 (few more) 2021-01-14 11:52:00 -08:00
d5ad24a130 Fundraising: Vintage T promotion now $256 instead of $512. 2021-01-14 11:48:55 -08:00
db3367c962 Supporters: VintageT: ran out of MenM. 2021-01-11 13:47:57 -08:00
Brett Smith
932552cd8f img: MicroBlocks images. 2021-01-07 11:35:48 -05:00
ad66b1e337 Sponsors — note in paragraph above that sorting order has changed.
The database entity id is now being seeded by the load script with
the supporter id in front of the entity id, so the sorting will now
be in order of when they joined.
2020-12-29 06:21:27 -08:00
Brett Smith
791663c112 Update privacy policy for stamps.com.
Per Karen.
2020-12-22 10:43:18 -05:00
Brett Smith
37e1e3eabe img: Add ReproBuilds group photo. 2020-12-21 10:50:53 -05:00
Brett Smith
4d5f150662 sponsors: Add CodeWeavers. RT#11026. 2020-12-18 16:55:00 -05:00
5c72071b67 rt:261 — Gilden requires proprietary Javascript just to show sizes
The only thing of note actually available on the Gilden page that we
previously linked to are these two images (they have a kid's size
image, but we don't need that).  So, link instead directly to the
images rather than the page itself.  This is admittedly more fragile
as those image links seem to have some sort of checksum in them, but
it's worth it to avoid the proprietary Javascript.

Thanks very much to the Supporter who pointed this out waaay back on
Wed, 25 Apr 2018 14:59:37 -0400 in rt:261 in our internal ticketing
system!  You know who you are.  ☺
2020-12-16 15:59:11 -08:00
b6b780392b DMCA: Triennial Rulemaking 2021: Long Comment filings. 2020-12-15 12:18:19 -08:00
10ca9400dd Typo fix. 2020-12-08 09:27:46 -08:00
6b214dc00c Move pictures around some more. 2020-12-04 12:41:19 -08:00
47673120ca Split this to two sentences. 2020-12-04 12:25:34 -08:00
1276f11563 Can't easily get this centered; just move it right.
Move this picture right because I can't get it centered.
2020-12-04 12:18:18 -08:00
bfd12dfae5 Move this div to the right place. 2020-12-04 12:08:14 -08:00
26b014139c Make tiny pictures a bit bigger. 2020-12-04 12:07:59 -08:00
45fc978f5a Move group picture higher, don't float left/right. 2020-12-04 11:39:12 -08:00
483f6321a7 Hopefully final <div> moving aroundedness. 2020-12-04 11:36:41 -08:00
1610ac5e3f Close <div> for sections in the right place. 2020-12-04 11:34:09 -08:00
7a3f12e908 Move photos around and don't use Karen photo.
Karen photo was actually the *really old* shirt which isn't available
anymore.
2020-12-04 11:33:04 -08:00
bdfb44e402 Make font size smaller for picture-tiny 2020-12-04 11:32:49 -08:00
8ea9fbd808 Create picture-tiny option; fix various formatting typos. 2020-12-04 11:29:18 -08:00
e841fd4f0c Launch vintage t-shirt give-away promotion for fundraiser. 2020-12-04 11:21:40 -08:00
Brett Smith
7153536aa6 img: Add Sage Sharp headshot. 2020-12-02 14:47:18 -05:00
Brett Smith
d2f0d6011a sponsors: Add ARDC. 2020-12-01 17:12:42 -05:00
7cf6e58968 Add hr-like line after listed sponsors.
When one sponsor has a logo, and the next one doesn't, it looks like
the textual name of that sponsor is the sponsor above it.  This bit
of CSS corrects that problem.
2020-12-01 11:33:47 -08:00
5793d4bbe9 In 2020, mjw gave enough to be listed as a sponsor! 2020-12-01 11:12:09 -08:00
2ba369aa5c Supporter: js: fade out “Expand All” anchor when all sections expand
The expandable sections can be expanded either one-by-one, or with
the “Expand All” button.  Add a counter for each expandable
section (which requires their div's to have 'id' attributes, lest
they be counted in the '__global' section of expandables).

The __global counter will work as advertised if you have no 'id'
attributes on any of your 'expandable-section'-classed div's, but if
you mix a __global without an id with ones that *do* have an id, it's
likely this particular code won't work for that.

Finally, add some documentation which is probably over-documenting
for someone who knows Javascript and jQuery well, but it took me a
while to figure out this code so I felt throwing some notes in there
might be helpful.
2020-11-26 09:21:44 -08:00
b5c1ca6ed1 Add br tag in Tony's photo caption. 2020-11-25 21:12:49 -08:00
0146847a4f Supporter: link to Tony on board page, add link to Copyleft Conf. 2020-11-25 21:05:44 -08:00
21ee13ee7e Supporter: pictures: get picture-small working & apply throughout.
I pulled this from the `blog-left` style I used to use in blog posts
and created a new style called picture-small.  On smaller screen
real estate, Tony's picture was ultimately too big.
2020-11-25 21:03:24 -08:00
35fd957b4a Close image tag and other changes to caption. 2020-11-25 20:51:27 -08:00
1db8a47c81 Supporters: Make my picture smaller with CSS. 2020-11-25 20:40:06 -08:00
7d374a62e7 Supporter: add photo of bkuhn. 2020-11-25 20:33:53 -08:00
25bece4c90 a.expander: better way to center items in modern browsers. 2020-11-25 19:46:59 -08:00
c2d41ca6fd Remove active class addition; don't remove data attr, only expand a 2020-11-25 19:42:57 -08:00
2842d416a5 Supporter page: apparently, anchor as empty element wreaks havoc.
Javascript code did something weird with this, putting it back the
more obvious way.
2020-11-25 19:32:11 -08:00
6b649e2f48 Supporter page: Support a “Expand All” link for collapsible sections
I wrap the entire section that has material that can be expanded in a
div with class `expandable-section`.  Once doing so, if you provide an
anchor with the class of `expander`, that anchor will be created with
text in the `data-expand-link-text` attribute.

I've also added some CSS to make the link look a certain way, for
good measure.
2020-11-25 19:27:53 -08:00
5560df9504 Supporter page: add … at end of each data-read-more. 2020-11-25 19:14:35 -08:00
Brett Smith
fb6164926f supporters: Dynamically construct "Read more" links in JS.
This provides better presentation to people without JavaScript,
and makes it easier to author the HTML.
2020-11-25 13:47:40 -05:00
Brett Smith
8ca60f8b07 js: Bugfix handling the "no window.location.hash" case. 2020-11-25 11:43:57 -05:00
Brett Smith
e397501bfa supporter: Collapse individual appeal sections. 2020-11-25 11:32:07 -05:00
Brett Smith
e8ec7a33fb js: Code simplification. 2020-11-25 10:45:38 -05:00
Brett Smith
8ea3438885 supporter: Kick off 2020 fundraiser. RT#12984
Image is copyright Remy DeCausemaker and licensed under CC BY-SA 4.0.
2020-11-24 08:54:02 -05:00
f738f9f6d5 Linux Australia did not renew donation. 2020-11-03 11:09:55 -08:00
b506f915d3 Compliance and Enforcement go together! 2020-10-02 19:53:41 -07:00
193421d395 pump.io page is no longer maintained. 2020-10-02 19:52:46 -07:00
c71279b83c Change title on donate box. 2020-10-02 19:50:41 -07:00
242aa60fc7 Fix Compliance sidebar menu selection. 2020-10-02 19:49:50 -07:00
95f740984e Update compliance donate box to only talk of becoming supporter. 2020-10-02 19:45:10 -07:00
20a3b7757a Various typo fixes and wordsmith changes. 2020-10-02 19:44:04 -07:00
344d52ba63 Correct date of launch and link to announcement. 2020-10-01 15:46:19 -07:00
fe802c5148 {% endblock %} is absolutely needed here. 2020-10-01 10:58:20 -07:00
5ac283b54a Various typo fixes and minor textual improvements. 2020-10-01 10:52:25 -07:00
Denver Gingerich
32def0ec73 Copyleft Compliance: minor word updates/HTML fixes 2020-10-01 10:52:25 -07:00
aeb4408f47 Copyleft Compliance: Strategic GPL Enforcement Initiative menu fix
Put the “Strategic GPL Enforcement Initiative” menu item higher up in
the menu, and name it to match the title now on that page.
2020-10-01 10:52:25 -07:00
d623a9b5c4 Copyleft Compliance: rewrite about page in light of strategic plan
The copyleft-compliance/about.html page doubles as the introduction
page to our compliance work.  This is a start at the rewrite of that
page to link off to the new items and have new text to inspire
interest in the project.
2020-10-01 10:52:25 -07:00
c27d339721 Copyleft: rename to "Strategic GPL Enforcement Initiative" 2020-10-01 10:52:25 -07:00
7ac2f13099 Copyleft Compliance: Minor rewrite of firmware liberation
This rewrite should improve the stand-alone nature of these documents
and allow for better integration with other summary text and
announcements on the website.

Note that they have now drifted heavily from the original formulation
of the items as grant proposals.
2020-10-01 10:52:25 -07:00
46c50ec0b1 Copyleft Compliance: Minor rewrite of strategy & firmware liberation
This rewrite should improve the stand-alone nature of these documents
and allow for better integration with other summary text and
announcements on the website.

Note that they have now drifted heavily from the original formulation
of the items as grant proposals.
2020-10-01 10:52:25 -07:00
Denver Gingerich
a8710b4b9f Copyleft Compliance: mostly minor fixes to new pgs
These are mostly minor edits (typo fixes, etc.) to the enforcement
strategy and firmware liberation pages that were just added.

The one large change was to replace the first paragraph of the
enforcement strategy page with the full Conservancy description used
previously.  The glue text used to shorten it appeared unsalvageable
and it wasn't immediately obvious how to replace it with something
better, so we used the full description instead.
2020-10-01 10:52:25 -07:00
e80d35a73e Copyleft Compliance: enforcement strategy & firmware liberation
These two new documents are based on grant proposals for this work.
We are preparing to announce the work publicly soon.  This is a first
draft of both documents.
2020-10-01 10:52:25 -07:00
52b676e3dc Substantial update of Member Project Application page.
This page had much out of date material, particularly the timeline
and the types of projects we seek, but also the FAQ section did not
include standard information that we're now regularly giving projects
during intake.

This update attempts to address many of those issues.
2020-09-21 19:48:47 -07:00
Brett Smith
c276442d5c projects: Typo fix image path from last commit. 2020-09-10 21:45:34 -04:00
Brett Smith
76a8a64c95 projects: Update OpenWrt logo. RT#12571 2020-09-10 21:44:33 -04:00
Brett Smith
0dd6eacfd0 projects: Add OpenWrt. 2020-09-10 13:28:45 -04:00
3f69cdc41c Deb now works for OSI.
See: https://sfconservancy.org/news/2020/aug/20/debleaving/
2020-08-31 17:51:52 -07:00
Brett Smith
f63f0f99bf projects: Re-alphabetize ICR.
I initially placed it based on calling it "ICR" rather than its full name.
2020-07-21 11:36:03 -04:00
Brett Smith
8e3a3dbe0f projects: Typo fix last commit. 2020-07-21 11:32:32 -04:00
Brett Smith
13a2e6bf61 projects: Add ICR. 2020-07-21 10:23:58 -04:00
Bradley M. Kuhn
1b88460d06 Synchronize my Eval Committee bio with the version on staff page. 2020-07-02 16:15:40 -07:00
Bradley M. Kuhn
615e0a4f95 Mike Hostetler has left the Eval Committee. 2020-07-02 16:14:56 -07:00
c14443db4a Karl Fogel has left the Eval Committee. 2020-07-02 16:02:08 -07:00
Brett Smith
a061cb4fcc projects: Delist projects. 2020-06-01 16:25:11 -04:00
eximious
8b17c65c02 add Tony pic 2020-04-28 15:52:40 -04:00
eximious
88dc35559b Merge branch 'master' of ssh://k.sfconservancy.org/website 2020-04-28 15:51:06 -04:00
eximious
89230b6d97 add Tony pic 2020-04-28 15:50:44 -04:00
Brett Smith
c41f20fa6f img: Add thumbnail from Deb's CHAOSScon keynote. 2020-04-27 09:16:17 -04:00
eximious
33fd364d55 add Faifcast at SeaGL pics 2020-03-31 15:11:24 -04:00
Bradley M. Kuhn
ff31ee927f Publish conservancy-travel-policy.html revision 4b21de38c2eab014dbfb776460c7600716bd6653. 2020-03-27 13:33:00 -07:00
Bradley M. Kuhn
24a5776c05 Publish conservancy-travel-policy.html revision d3640cc7e0181236b3b5a988328ab2ae82cd7c03. 2020-03-27 13:21:37 -07:00
Bradley M. Kuhn
33c39c4b0a Publish conservancy-travel-policy.html revision 9ef7fadc65c41438dd5dfeec3544bf80b53e4cea. 2020-03-27 12:47:49 -07:00
Bradley M. Kuhn
657e142abe Publish conservancy-travel-policy.html revision efb14f1e18273e4f164e3b3a689a086fd511ba26. 2020-03-27 12:21:56 -07:00
Bradley M. Kuhn
a603464bc2 Publish conservancy-travel-policy.html revision 3b1bc93469c1bb9ceb479f32c29fd7a8ee3521e3. 2020-03-27 12:09:25 -07:00
eximious
994fedc19d add Peter's photos 2020-03-19 10:52:48 -04:00
Brett Smith
f5fd8cdf2f projects: Update Outreachy link. 2020-02-24 14:36:55 -05:00
eximious
bba3f00084 add rotated pic 2020-02-07 14:05:36 -05:00
eximious
266644662a Merge branch 'master' of ssh://k.sfconservancy.org/website 2020-02-07 10:39:53 -05:00
eximious
b85565d104 add copyleftconf2 pic 2020-02-07 10:39:29 -05:00
Bradley M. Kuhn
c564f15511 Correct & update hard-coded domain names from legacy codebase. 2020-01-24 09:26:59 -08:00
Brett Smith
fd86367e85 img: Fix extension on last commit. 2020-01-14 13:11:40 -05:00
Brett Smith
06ea727e10 img: Add Edward Snowden 2016 pic. 2020-01-14 13:08:36 -05:00
Brett Smith
d4265c3a3c img: Photo of Leslie Hawthorn. 2020-01-13 12:17:27 -05:00
eximious
e0bb98160f Merge branch 'master' of ssh://k.sfconservancy.org/website 2020-01-07 17:39:23 -05:00
eximious
7ef6d92f68 add wine bottle pic 2020-01-07 17:38:54 -05:00
eximious
93f03a9773 add Wine Conf 2020-01-07 16:34:45 -05:00
Bradley M. Kuhn
93241190b3 Sponsors: Savoir Faire Linux did not renew sponsorship. 2020-01-06 12:12:49 -08:00
Bradley M. Kuhn
3e998fa06f Sponsors: Correct ratio for maximum 250x250 as required.
The image wasn't square like the old one was, so it was stretched with the
previous formulation.
2020-01-06 10:26:52 -08:00
Bradley M. Kuhn
ceee959d32 Sponsors: ok, somehow, someday, I'll have this file name right. 2020-01-06 10:07:59 -08:00
Bradley M. Kuhn
5c44a22eb2 Sponsors: Yet another image file typo fix. 2020-01-06 08:47:41 -08:00
Bradley M. Kuhn
b262b6191f Sponsors: finally get image file in right place 2020-01-05 20:40:27 -08:00
Bradley M. Kuhn
fa4ac29995 Sponsors: Fix case in file name 2020-01-05 20:28:42 -08:00
Bradley M. Kuhn
4dc42f5b62 Sponsors: Update image of Josh Triplett. 2020-01-05 20:24:43 -08:00
eximious
eeab5fcd8b add Allison pic 2020-01-03 11:35:41 -05:00
eximious
1422c711e6 add snow art 2019-12-18 12:51:46 -05:00
eximious
1337374dfd add mjw 2019-12-17 14:56:54 -05:00
eximious
321ec8435c Merge branch 'master' of ssh://k.sfconservancy.org/website 2019-12-12 15:41:03 -05:00
eximious
8e10586e11 add cats 2019-12-12 15:11:04 -05:00
Brett Smith
b6e702194d banners: Update for 2019. 2019-12-11 10:22:27 -05:00
Brett Smith
e3d0d79337 banners: Add 2019 banners. 2019-12-11 10:20:35 -05:00
Bradley M. Kuhn
3cef6d32d6 Change tense on verb since date is past. 2019-11-27 13:13:39 -08:00
eximious
558059f7e9 add byline to MB photo 2019-11-26 10:56:17 -05:00
eximious
17e7929909 tweak number 2019-11-25 12:49:24 -05:00
eximious
f39804190e tweak funding dev section 2019-11-25 12:34:41 -05:00
Brett Smith
8d1337a006 supporter: Add link to Supporter form where appropriate. 2019-11-25 12:19:27 -05:00
Brett Smith
f656e9de83 supporter: 2019 appeal text. 2019-11-25 12:05:48 -05:00
Brett Smith
ecff2f38c5 base_conservancy: Ready fundraiser bar for 2019. 2019-11-24 16:01:57 -05:00
Brett Smith
bdac443c16 systemd: Replace cron infrastructure. 2019-11-23 18:20:09 -05:00
Brett Smith
ab0b2401db website-update: Take PRODUCTION_BRANCH from the environment. 2019-11-23 09:18:23 -05:00
Brett Smith
2aaea4b783 website-update: Don't define SITEDIR in the script.
Prefer setting WorkingDirectory.
2019-11-23 09:14:45 -05:00
Brett Smith
df3eaea616 website-update: Remove lockdir code.
Now that we're running as a systemd service, that will make sure
only one update runs at a time.
2019-11-23 09:12:35 -05:00
Brett Smith
d5e4646ca5 website-update: Stop updating the database.
Move this to a separate service.
2019-11-23 09:12:12 -05:00
Brett Smith
b81afe467b base: Fundraiser banner only shows days left when time is short. 2019-11-22 09:46:33 -05:00
Brett Smith
67e64d3a6c base: Break out individual local context variables. 2019-11-22 09:46:07 -05:00
Brett Smith
fc9b10142f projects: Delist Spec-Ops. 2019-11-18 12:53:31 -05:00
eximious
34ee5a27b5 add pics 2019-10-24 14:45:23 -04:00
Bradley M. Kuhn
053e31d641 Update karen's Bio
Changes were given to me by karen over the phone just now. :)
2019-10-15 14:56:51 -07:00
Bradley M. Kuhn
e31badfa7b Merge branch 'master' of ssh://k.sfconservancy.org/website 2019-10-15 13:19:43 -07:00
Bradley M. Kuhn
b0417e9f1c Add id link for bkuhn. 2019-10-15 09:44:07 -07:00
eximious
1081bd3582 Merge branch 'master' of ssh://k.sfconservancy.org/website 2019-10-10 14:54:29 -04:00
Bradley M. Kuhn
13c63f22e9 List staff alphabetically by surname. 2019-10-08 12:53:18 -07:00
Bradley M. Kuhn
7078c0fe0a Fix missing closing anchor tag 2019-10-08 11:54:36 -07:00
Bradley M. Kuhn
effbf23fce Leadership and other bio updates, most notably Allison Randal.
Allison Randal joined Conservancy's board!
2019-10-08 11:07:54 -07:00
Bradley M. Kuhn
5c01d8b1e5 Merge branch 'update-faq-to-esxi-6' of https://k.sfconservancy.org/website-denver 2019-10-07 16:47:49 -07:00
Bradley M. Kuhn
1bcf6f6a8e Merge branch 'rmgplus' of https://k.sfconservancy.org/website-mlinksva 2019-10-07 16:42:51 -07:00
Martin Michlmayr
480bbd8e66
Update filing date for FY 2018 tax return
Update filing date due to the 6 month extension.
2019-09-30 18:29:05 +02:00
Martin Michlmayr
a0dac44b25
Add FY 2019 2019-09-28 13:28:57 +02:00
Martin Michlmayr
69e13af222
Add Bdale Garbee to board
Bdale joined the board in 2018 but was never added to the web site.
2019-09-27 12:27:59 +02:00
Bradley M. Kuhn
fe70fc163d UPSTO petition filed today regarding personal address disclosure. 2019-09-19 12:16:46 -07:00
Mike Linksvayer
11d41df6ca g+ is gone, rm or replace with archive links 2019-08-31 17:00:24 -07:00
Denver Gingerich
01b0b090a3 List previously analyzed versions in lawsuit FAQ. 2015-05-31 20:53:01 -07:00
Denver Gingerich
76b653ed8a Lawsuit FAQ now uses ESXi 6.0 and add minor fixes.
The main change here is that the lawsuit FAQ page now shows one how to
verify that VMware combined Linux source code with their binary-only
components using VMware's ESXi 6.0 rather than ESXi 5.5 Update 2.
This required a couple minor path changes and updates to the memory
addresses and SHA-1 checksums.  The analysis steps otherwise remained
the same.

The FAQ is now more generic in its discussion of the ESXi versions
that were originally analyzed, in order to avoid confusion with the
analysis provided in the FAQ, which uses a newer version and reaches
the same conclusion.

Some minor, unrelated fixes were also added.  These include:
 * add period at end of paragraphs where it was previously missing
 * convert ">" in <pre> and <code> to "&gt;" so the page is valid HTML
 * convert "&" in <pre> to "&amp;" so the page is valid HTML
 * add missing 's' to "truct pci_driver"
 * fix the "tg.c" filename - this should be "tg3.c"
2015-05-31 20:53:01 -07:00
851 changed files with 31810 additions and 21370 deletions

3
.dockerignore Normal file
View file

@ -0,0 +1,3 @@
*
!/requirements.txt

15
.gitignore vendored
View file

@ -1,9 +1,10 @@
*~
#*#
*.pyc
www/djangocommonsettings.py
www/conservancy/static/source
logs
www/conservancy/static/videos/*.webm
www/conservancy/static/videos/*.ogv
www/wsgi-password.wsgi
__pycache__
conservancy/static/docs/Transcript_Full_Vizios_MSJ_HearingDeptC-33.231005.pdf
conservancy/static/docs/SFC_response_to_summary_judgement.pdf
conservancy/static/docs/Vizio_summary_judgement_reply_brief.pdf
conservancy/static/docs/2023-4-28 VIZIOs Motion for Summary Judgment with Reservation.pdf
# Production secrets because we can't pass environment variables to mod_wsgi.
/secrets.json

View file

@ -1,3 +0,0 @@
# aspen-migration
Notes on the aspen migration

View file

@ -0,0 +1,29 @@
# To build the Docker image with the necessary dependencies:
# docker build --tag sfconservancy.org-bookworm --file Dockerfile-debian-bookworm .
#
# [FIRST RUN ONLY] If you don't have an existing copy of the database, run:
# touch conservancy-website.sqlite3
#
# Start the application with:
# docker run --tty --interactive --rm=true --publish=8000:8000 \
# --mount type=bind,source=$(pwd),target=/var/www/website \
# --mount type=bind,source=$(pwd)/conservancy-website.sqlite3,target=/var/lib/www/database/conservancy-website.sqlite3 \
# sfconservancy.org-bookworm:latest
#
# [FIRST RUN ONLY] In a separate terminal, run `docker ps` noting "CONTAINER ID".
# Then run the database migrations with:
# docker exec -it [CONTAINER ID] /usr/bin/python3 manage.py migrate
#
# Visit the site at http://127.0.0.1:8000
ARG DEBIAN_FRONTEND=noninteractive
FROM debian:bookworm
RUN apt-get update && apt-get upgrade -y
RUN apt-get install -y python3 python3-pip python3-wheel sqlite3
RUN apt-get install -y python3-django python3-bs4 python3-html5lib python3-django-countries
COPY ./requirements.txt /var/www/website/requirements.txt
WORKDIR /var/www/website/
RUN python3 -m pip install -r requirements.txt --break-system-packages
RUN python3 -m pip freeze
ENTRYPOINT ["python3", "/var/www/website/manage.py", "runserver", "0.0.0.0:8000"]

View file

@ -1,38 +1,78 @@
Contributing
============
# Software Freedom Conservancy website
This is a Python/[Django](https://www.djangoproject.com/)-based website that
runs [sfconservancy.org](https://sfconservancy.org).
## Contributing
The canonical location for this repository is [on Conservancys
Kallithea instance](http://k.sfconservancy.org/website). Copies of
this repository elsewhere, such as Github, are for backup purposes
only..
Forgejo instance](https://f.sfconservancy.org/Conservancy/website).
License
=======
## License
The software included herein, such as the Python source files, are generally
licensed [AGPLv3](AGPLv3)-or-later. The Javascript is a hodgepodge of
licensing, but all of it is compatible with [AGPLv3](AGPLv3)-or-later. See
the notices at the top of each Javascript file for licensing details.
licensed [AGPLv3](AGPLv3)-or-later. JavaScript source is generally
[GPLv3](GPLv3)-or-later. See the notices at the top of each Javascript file for
specific licensing details.
The content and text (such as the HTML files) is currently
[CC-BY-SA-3.0](CC-By-SA-3.0).
Server Configuration
====================
conservancy's webserver runs on a machine called
dogwood.sfconservancy.org, which is a standard Debian installation.
## Server configuration
The following packages are installed to make Django and Apache work on a
squeeze install:
$ aptitude install python-django apache2 sqlite3 python2.5-sqlite libapache2-mod-python
Conservancy's webserver runs on a standard Debian installation. For
configuration requirements, see `deploy/install.yml`.
## CDN
Django Setup
============
Requests to any URL starting with `/videos/` are forwarded to our CDN server to
reduce bandwidth use. These files are uploaded to the CDN manually via the
Rackspace API. Note that the Apache rewrite rule requires that the file **not
exist** on disk for the redirect to be applied.
0. Make sure the Python module 'djangopw', with the global variable
'djangoadmin_password' is somewhere importable in the default
PYTHON_PATH.
## Local development
Python dependencies in `requirements.txt` are tied to the versions available in
Debian:
python3 -m pip install -r requirements.txt
To run the tests, install `pytest-django` and run pytest:
python3 -m pip install pytest-django
python3 -m pytest
Then run:
python3 manage.py migrate
python3 manage.py runserver
There is also a Dockerfile available if that's more convenient. See that file
for details.
## Deploying
To deploy, run `./bin/deploy` on your local machine.
Note that the `./bin/deploy` script will requires proper SSH access to the
`debian` (default) user SFC's webserver, `hickory.sfconservancy.org`. Your
local user on your own local machine will also need push access permission to
this repository on the Git server (which was `f.sfconservancy.org` at the
time of writing these instructions).
## Link checking
To check for broken links in production, run:
bin/linkcheck
Note that the Apache configuration has a significant number of aliases and
redirects for historic URL changes which means that linkchecker may not run
cleanly in local development.

30
TODO.md Normal file
View file

@ -0,0 +1,30 @@
# To-do
* use an XML query tool to build `img/font_awesome_subset.svg`
* rate limiting to prevent abuse - especially on POST requests
* consider removing `events` and `worldmap` modules
* ask Denver about why so many license files
# Done
* ensure appropriate caching headers are used
* remove `internalNavigate`
* add tests for main pages returning 200
* move `SITE_FUNDGOAL` configuration to `settings.py`
* move `sponsors.py` and `sponsors.html` into `supporters` app
* use `<detail>` elements for supporter page hidden sections, rather than
complex jQuery
* remove jQuery
* split the template/content files out from `conservancy/static` into their own
`content` directory (avoid mixing static and non-static content)
* remove `ForceCanonicalHostnameMiddleware` by ensuring canonical redirect and
HTTPS redirect is done by Apache
* standardise settings to replace `settings.py` and `djangocommonsettings.py`
with `settings/prod.py` and move `SECRET_KEY` to an environment variable
* migrate to Django 4.2 LTS
* review `apache2` directory - may be unused
* add deployment script that runs migrations and collects static files
* switch `ParameterValidator` to use `SECRET_KEY` if possible to minimize
non-standard settings
* install staticfiles app

View file

@ -1,62 +0,0 @@
# Copyright (C) 2005-2009, Jim Garrison
# Copyright (C) 2009, 2010, Bradley M. Kuhn
# Permission to use, copy, modify, distribute and/or distributed modified
# versions of this software for any purpose with or without fee is hereby
# granted, provided that the above copyright notice and this permission
# notice appear in all copies.
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
# IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
NameVirtualHost 10.10.11.21:80
#NameVirtualHost 10.10.11.21:443
<VirtualHost 10.10.11.21:80>
ServerName sfconservancy.org
ServerAdmin root@sfconservancy.org
# SSLCertificateFile /etc/apache2/ssl/apache.pem
DocumentRoot /var/www/conservancy/static
<Directory /var/www/conservancy/static>
Options -Indexes FollowSymLinks -MultiViews
Order allow,deny
allow from all
AllowOverride None
</Directory>
<Directory /var/www/conservancy/static/source>
Options Indexes FollowSymLinks -MultiViews
Order allow,deny
allow from all
AllowOverride None
</Directory>
PythonPath "['/var/www'] + sys.path"
SetEnv DJANGO_SETTINGS_MODULE conservancy.settings
PythonDebug Off
PythonPostReadRequestHandler conservancy_wrapper
PythonOutputFilter modpythoncustom DJANGOTEMPLATE
AddOutputFilter DJANGOTEMPLATE html
ErrorDocument 401 /401error.html
ErrorDocument 403 /403error.html
ErrorDocument 404 /404error.html
ErrorDocument 500 /500error.html
ErrorLog /var/log/apache2/sfconservancy.org_error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/sfconservancy.org_access.log combined
ServerSignature On
</VirtualHost>

20
bin/deploy Executable file
View file

@ -0,0 +1,20 @@
#!/bin/sh
set -e # Abort on failure
git push
ssh debian@hickory.sfconservancy.org 'bash -s' << EOF
set -x # Show output
set -e # Abort on errors
cd /var/www/website
sudo -u www-data git pull
sudo chown www-data:www-data .
sudo -E -u www-data /var/www/venv-website/bin/python3 -m pip install -r requirements.txt
export DJANGO_SETTINGS_MODULE=conservancy.settings.prod
sudo -E -u www-data /var/www/venv-website/bin/python3 manage.py check
sudo -E -u www-data /var/www/venv-website/bin/python3 manage.py migrate
sudo -E -u www-data /var/www/venv-website/bin/python3 manage.py collectstatic -v0 --noinput --link
sudo systemctl reload apache2
curl --silent --head https://sfconservancy.org | grep --perl-regexp "^HTTP/.+ 200"
EOF

7
bin/linkcheck Executable file
View file

@ -0,0 +1,7 @@
#!/usr/bin/env sh
set -e # Abort on failure
set -x
# Run the check from the web-server itself to avoid network delays.
ssh debian@hickory.sfconservancy.org "linkchecker https://sfconservancy.org/"

6
bin/test Executable file
View file

@ -0,0 +1,6 @@
#!/usr/bin/env sh
set -e # Abort on failure
set -x
python3 -m pytest

View file

@ -1,21 +1,15 @@
import hashlib
from django.conf import settings
from django.template import RequestContext
# This is backwards compatibilty support for a custom function we wrote
# ourselves that is no longer necessary in modern Django.
from django.shortcuts import render as render_template_with_context
class ParameterValidator(object):
class ParameterValidator:
def __init__(self, given_hash_or_params, params_hash_key=None):
from django.conf import settings
if params_hash_key is None:
self.given_hash = given_hash_or_params
else:
self.given_hash = given_hash_or_params.get(params_hash_key)
seed = getattr(settings, 'CONSERVANCY_SECRET_KEY', '')
seed = settings.SECRET_KEY.encode('utf-8')
self.hasher = hashlib.sha256(seed)
if isinstance(self.given_hash, basestring):
if isinstance(self.given_hash, str):
self.hash_type = type(self.given_hash)
else:
self.hash_type = type(self.hasher.hexdigest())

View file

@ -0,0 +1,5 @@
from django.apps import AppConfig
class AssignmentConfig(AppConfig):
name = 'conservancy.assignment'

View file

@ -0,0 +1,73 @@
import datetime
from django import forms
from django.core.validators import ValidationError
from django.utils import timezone
from .models import Assignment
from .terms import TERMS
def validate_in_past(value):
# Adding a day to allow the current date anywhere on earth, regardless of
# the server timezone.
if value > timezone.now().date() + datetime.timedelta(days=1):
raise ValidationError('Enter a date in the past')
class AssignmentForm(forms.ModelForm):
period_begins = forms.DateField(
label='Assign the copyright in my above contributions starting on',
help_text='You can use the day you first started contributing (or, equivalently, your date of birth), or any later date.',
required=True,
widget=forms.DateInput(attrs={'type': 'date'}),
validators=[validate_in_past],
)
period_end_type = forms.ChoiceField(
label='and ending on',
choices=[
('all future contributions', 'all future contributions (no end date)'),
('a specific past date', 'a specific past date (specify below)'),
],
widget=forms.RadioSelect(),
initial='all future contributions',
)
period_ends = forms.DateField(
label='Specific past date (if applicable)',
required=False,
widget=forms.DateInput(attrs={'type': 'date'}),
validators=[validate_in_past],
)
agreement_terms = forms.CharField(
widget=forms.Textarea(attrs={'readonly': 'readonly'}),
initial=TERMS,
)
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields['attestation_of_copyright'].required = True
class Meta:
model = Assignment
fields = [
'full_name',
'email',
'country_of_residence',
'repositories',
'all_emails',
'period_begins',
'period_end_type',
'period_ends',
'agreement_terms',
'attestation_of_copyright',
]
def clean_period_ends(self):
period_begins = self.cleaned_data.get('period_begins')
period_ends = self.cleaned_data.get('period_ends')
period_end_type = self.cleaned_data.get('period_end_type')
if period_begins and period_ends and period_begins > period_ends:
raise ValidationError('End of period is before start')
if period_end_type == 'a specific past date' and not period_ends:
raise ValidationError('This field is required')
return period_ends

View file

@ -0,0 +1,26 @@
# Generated by Django 1.10.7 on 2021-11-30 00:24
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='Assignment',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('full_name', models.CharField(max_length=255)),
('email', models.EmailField(max_length=254)),
('place_of_residence', models.TextField(blank=True, verbose_name='Country of citizenship or residential address')),
('repository', models.URLField(blank=True, verbose_name='Code repository')),
('coverage', models.CharField(choices=[('up to this year', 'One-off up to and including this year'), ('ongoing', 'All existing and new contributions')], default='up to this year', max_length=50, verbose_name='Time period to assign')),
('attestation_of_copyright', models.BooleanField(verbose_name='I attest that I own the copyright on these works')),
],
),
]

View file

@ -0,0 +1,73 @@
# Generated by Django 1.11.29 on 2021-12-06 22:37
import datetime
from django.db import migrations, models
import django_countries.fields
class Migration(migrations.Migration):
dependencies = [
('assignment', '0001_initial'),
]
operations = [
migrations.RemoveField(
model_name='assignment',
name='coverage',
),
migrations.RemoveField(
model_name='assignment',
name='place_of_residence',
),
migrations.RemoveField(
model_name='assignment',
name='repository',
),
migrations.AddField(
model_name='assignment',
name='all_emails',
field=models.TextField(default='', verbose_name='All email addresses and/or names used by you to contribute to the above'),
preserve_default=False,
),
migrations.AddField(
model_name='assignment',
name='country_of_residence',
field=django_countries.fields.CountryField(default='', max_length=2),
preserve_default=False,
),
migrations.AddField(
model_name='assignment',
name='period_begins',
field=models.DateField(default=datetime.date(2021, 1, 1), verbose_name='Assignment period begins'),
preserve_default=False,
),
migrations.AddField(
model_name='assignment',
name='period_end_type',
field=models.CharField(choices=[('all future contributions', 'all future contributions'), ('a specific past date', 'a specific past date')], default=datetime.date(2021, 1, 1), max_length=50, verbose_name='Time period to assign'),
preserve_default=False,
),
migrations.AddField(
model_name='assignment',
name='period_ends',
field=models.DateField(blank=True, null=True, verbose_name='Assignment period ends (if applicable)'),
),
migrations.AddField(
model_name='assignment',
name='repositories',
field=models.TextField(default='', help_text='List of URLs, one per line', verbose_name="Code repositories contributed to that you'd like to assign"),
preserve_default=False,
),
migrations.AlterField(
model_name='assignment',
name='attestation_of_copyright',
field=models.BooleanField(verbose_name='I agree to be bound by the terms of the Copyright Assignment Agreement above, and that I own the copyright in the works defined above'),
),
migrations.AlterField(
model_name='assignment',
name='email',
field=models.EmailField(max_length=254, verbose_name='Email address (to contact you if we have questions)'),
),
]

View file

@ -0,0 +1,24 @@
# Generated by Django 1.11.29 on 2021-12-06 22:49
import uuid
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('assignment', '0002_auto_20211206_2237'),
]
operations = [
migrations.RemoveField(
model_name='assignment',
name='id',
),
migrations.AddField(
model_name='assignment',
name='uuid',
field=models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False),
),
]

View file

@ -0,0 +1,30 @@
# Generated by Django 1.11.29 on 2023-01-27 06:02
from django.db import migrations, models
from ..models import validate_mutiple_urls
class Migration(migrations.Migration):
dependencies = [
('assignment', '0003_auto_20211206_2249'),
]
operations = [
migrations.AlterField(
model_name='assignment',
name='all_emails',
field=models.TextField(verbose_name='All email addresses or other unique user identities, such as nicknames or handles, used by you to contribute to the above (i.e. in the commit logs)'),
),
migrations.AlterField(
model_name='assignment',
name='attestation_of_copyright',
field=models.BooleanField(verbose_name='By checking the box below, I am confirming that I agree to be bound by the terms of the Copyright Assignment Agreement above.'),
),
migrations.AlterField(
model_name='assignment',
name='repositories',
field=models.TextField(help_text='List of URLs, one per line', validators=[validate_mutiple_urls], verbose_name='Code repositories containing contributions of yours whose copyright you are assigning'),
),
]

View file

@ -0,0 +1,57 @@
import uuid
from django.core.validators import URLValidator, ValidationError
from django.db import models
from django_countries.fields import CountryField
def validate_mutiple_urls(value):
"""Map the URLValidator() over text containing multiple URLs."""
candidate_urls = [c.strip() for c in value.split()]
invalid_urls = []
# TODO: Improve this https://docs.djangoproject.com/en/3.2/ref/forms/validation/#raising-multiple-errors
validator = URLValidator()
for url in candidate_urls:
try:
validator(url)
except ValidationError:
invalid_urls.append(url)
print(invalid_urls)
if invalid_urls:
raise ValidationError('These don\'t seem to be complete URLs:\n{}'.format('\n'.join(invalid_urls)))
class Assignment(models.Model):
"""A copyright assignment to Conservancy."""
uuid = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
full_name = models.CharField(max_length=255)
email = models.EmailField('Email address (to contact you if we have questions)')
country_of_residence = CountryField()
repositories = models.TextField(
'Code repositories containing contributions of yours whose copyright you are assigning',
help_text='List of URLs, one per line',
validators=[validate_mutiple_urls],
)
all_emails = models.TextField(
'All email addresses or other unique user identities, such as nicknames or handles, used by you to contribute to the above (i.e. in the commit logs)',
)
period_begins = models.DateField(
'Assignment period begins',
)
period_end_type = models.CharField(
'Time period to assign',
max_length=50,
choices=[
('all future contributions', 'all future contributions'),
('a specific past date', 'a specific past date'),
],
)
period_ends = models.DateField(
'Assignment period ends (if applicable)',
blank=True,
null=True,
)
attestation_of_copyright = models.BooleanField(
'By checking the box below, I am confirming that I agree to be bound by the terms of the Copyright Assignment Agreement above.',
)

View file

@ -0,0 +1,55 @@
{% extends "assignment/base_assignment.html" %}
{% block category %}Copyright Assignment{% endblock %}
{% block outercontent %}
<div class="mw8 center ph2 ph3">
<h1>Copyright Assignment</h1>
<div class="mw7 mb5">
<p>Thank you for considering assigning your copyright to the Software Freedom Conservancy. Your assignment helps us enforce free and open source software licenses.</p>
<p>By filling in and submitting the below form, you agree to assign your copyrights in the specified projects to Software Freedom Conservancy, which means that Conservancy can enforce the licenses for your code in court, minimizing the need for you to be involved. Conservancy agrees to keep your code under a free and open source license.</p>
<p>If you have any questions about assigning your copyright to Conservancy, please don't hesitate to email us at <a href="mailto:copyright-assignment@sfconservancy.org">copyright-assignment@sfconservancy.org</a>.</p>
<form id="assignment-form" action="." method="post" class="mw7">
{% csrf_token %}
{% if form.errors %}
<p class="dark-red bg-washed-red pa2 ba b--red br1">Please review the errors below.</p>
{% endif %}
{{ form.as_p }}
<p><em>Please be aware that your employer or a contractor may own the rights in your work by virtue of their employment of you or by explicit transfer of ownership in an agreement. We recommend you review any relevant agreements or consult with a lawyer if you are not sure.</em></p>
<p><em>After submitting this agreement, if you would like to make any changes, you must let us know within 7 days by emailing <a href="mailto:copyright-assignment@sfconservancy.org">copyright-assignment@sfconservancy.org</a>, which is also where you can reach us if you have any questions.</em></p>
<p><button type="submit" class="ph3 pv2">Submit</button></p>
</form>
</div>
</div>
<script>
'use strict';
// End date field should be shown only when "a specific past date" is selected.
const form = document.querySelector('#assignment-form');
const past_date_label = document.querySelector('label[for=id_period_ends]');
const past_date_field = document.querySelector('#id_period_ends');
const past_date_container = past_date_field.parentElement;
form.addEventListener('change', togglePastDate);
togglePastDate(); // Run change handler once to initialise form.
// Text "(if applicable)" isn't relevant with JS enabled.
past_date_label.innerHTML = past_date_label.innerHTML.replace(' (if applicable)', '');
function togglePastDate() {
if (form['period_end_type'].value === 'all future contributions') {
past_date_container.style.display = 'none';
past_date_field.required = false;
}
else {
past_date_container.style.display = '';
past_date_field.required = true;
}
}
</script>
{% endblock %}

View file

@ -0,0 +1,49 @@
{% extends "base_conservancy.html" %}
{% block category %}Copyright Assignment{% endblock %}
{% block head %}
{{ block.super }}
<style>
label { display: block; }
input[type=text], input[type=email], input[type=date], select {
padding: 0.25rem;
}
input[type=checkbox] { width: auto; }
span[class=helptext] {
display: block;
font-size: 12px;
font-style: italic;
color: #666;
}
#id_place_of_residence {
height: 5rem;
}
form ul {
margin: -1em 0 0;
}
form li {
list-style: none;
line-height: 1.5;
}
textarea {
width: 100%;
max-width: 45rem;
height: 8rem;
padding: 0.25rem;
}
#id_full_name, #id_email {
width: 100%;
max-width: 25rem;
}
#id_agreement_terms {
height: 20rem;
}
.helptext {
max-width: 35rem;
}
.errorlist {
margin: 1rem 0 0.25rem;
color: #e7040f;
white-space: pre-wrap;
}
</style>
{% endblock %}

View file

@ -0,0 +1,17 @@
{% extends "assignment/base_assignment.html" %}
{% load static %}
{% block category %}Copyright Assignment{% endblock %}
{% block outercontent %}
<div class="mw8 center ph2 ph3">
<h1>Thanks! <svg style="color: #ff41b4; width: 30px; height: 30px; vertical-align: middle;"><use href="{% static 'img/font_awesome_subset.svg' %}#heart"></use></svg></h1>
<div class="mw7 mb5">
<p>Thank you for assigning your copyright to Software Freedom Conservancy! We have recorded the below information regarding the assignment and the works.</p>
<p>We will be sending out verification emails to the email addresses you used to contribute, as specified below, in the coming weeks. Please follow the instructions there to complete the verification at that time.</p>
<p>If you would like to make any changes, you must let us know within 7 days by emailing <a href="mailto:copyright-assignment@sfconservancy.org">copyright-assignment@sfconservancy.org</a>, which is also where you can reach us if you have any questions.</p>
<form>
{{ form.as_p }}
</form>
</div>
</div>
{% endblock %}

View file

@ -0,0 +1,56 @@
import textwrap
TERMS = textwrap.dedent("""\
Copyright Assignment Agreement
By checking the box below and submitting this form, you (``Assignor'') enter
into this Agreement between Assignor and the Software Freedom Conservancy,
Inc., a New York nonprofit corporation located in Brooklyn, New York, which
has received recognition of exemption from federal income tax under Section
501(c)(3) of the Internal Revenue Code and classification as a public
charity (the ``Conservancy'').
For good and valuable consideration, receipt of which is hereby
acknowledged, Assignor hereby transfers to the Conservancy their entire
right, title, and interest in the copyrights in the works identified by the
repositories, email addresses, names, and time periods listed above (the
Works), including all claims, causes of action and remedies for past,
present and future infringement. To the extent that the Assignor is
assigning future rights, and the rights in future works do not vest in
Conservancy upon the Works creation, Assignor agrees to assign, immediately
following the creation, all rights to Conservancy and irrevocably appoints
Conservancy as their attorney-in-fact to take any necessary steps to perfect
Conservancys rights under this Agreement.
The Conservancy will use its discretion for any relicensing of the Works
under other free and open source software licenses. Decisions about
relicensing made by Conservancy will apply to its assignees and successors.
If you have any questions about Conservancy's relicensing philosophy, and
what limitations it may have because it is a public charity, please contact
us at copyright-assignment@sfconservancy.org .
The Conservancy hereby grants Assignor a royalty-free non-exclusive license
to use the interests assigned hereunder for any purpose. The Conservancy's
rights shall otherwise continue unchanged.
Assignor hereby grants to the Conservancy and to recipients of software
distributed by the Conservancy a perpetual, worldwide, non-exclusive,
no-charge, royalty-free, irrevocable patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Works, where
such license applies only to those patent claims licensable by Assignor
that are necessarily infringed by the Works alone or by combination of
Assignor's contributions with the Works to which such contributions were
submitted.
Assignor hereby represents and warrants that the email addresses and user
identities identified above are unique to the Assignor, that no one but the
Assignor has made contributions using the email addresses and user
identities identified above, that the Assignor is the sole copyright holder
for the Works assigned hereunder, and that the Assignor has the right and
power to enter into this contract. Assignor hereby indemnifies and holds
harmless the Conservancy, its officers, employees, agents, successors, and
assigns against any and all claims, actions or damages (including reasonable
attorney's fees) asserted by or paid to any party on account of a breach or
alleged breach of the foregoing warranty. Assignor makes no other express or
implied warranty (including without limitation any warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE).""")

View file

@ -0,0 +1,8 @@
from django.urls import path
from .views import AssignmentCreateView, AssignmentThanksView
urlpatterns = [
path('', AssignmentCreateView.as_view(), name='assignement-add'),
path('<uuid:pk>/', AssignmentThanksView.as_view(), name='assignment-thanks'),
]

View file

@ -0,0 +1,40 @@
from django.core.mail import send_mail
from django.urls import reverse_lazy
from django.views.generic import DetailView
from django.views.generic.edit import CreateView
from .forms import AssignmentForm
from .models import Assignment
class AssignmentCreateView(CreateView):
"""Show a form for the initial copyright assignment."""
form_class = AssignmentForm
template_name = 'assignment/assignment_form.html'
def form_valid(self, form):
intro = 'The following copyright assignment has been submitted:\n\n'
body = intro + '\n'.join(['{}: {}'.format(k, v) for k, v in form.cleaned_data.items() if k != 'agreement_terms'])
send_mail(
'Copyright assignment form: {}'.format(form.cleaned_data['full_name']),
body,
'copyright-assignment@sfconservancy.org',
['copyright-assignment@sfconservancy.org', 'copyright-agent@sfconservancy.org'],
)
return super().form_valid(form)
def get_success_url(self, *args, **kwargs):
return reverse_lazy('assignment-thanks', kwargs={'pk': str(self.object.uuid)})
class AssignmentThanksView(DetailView):
model = Assignment
template_name = 'assignment/thanks.html'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['form'] = AssignmentForm(instance=self.object)
for _, field in context['form'].fields.items():
field.widget.attrs['disabled'] = 'disabled'
return context

View file

@ -1,11 +1,15 @@
from django.contrib import admin
from conservancy.apps.blog.models import EntryTag, Entry
from .models import Entry, EntryTag
@admin.register(EntryTag)
class EntryTagAdmin(admin.ModelAdmin):
prepopulated_fields = {'slug': ('label',)}
admin.site.register(EntryTag, EntryTagAdmin)
@admin.register(Entry)
class EntryAdmin(admin.ModelAdmin):
list_display = ('pub_date', 'headline', 'author')
list_filter = ['pub_date']
@ -13,6 +17,3 @@ class EntryAdmin(admin.ModelAdmin):
search_fields = ['headline', 'summary', 'body']
prepopulated_fields = {'slug': ("headline",)}
filter_horizontal = ('tags',)
admin.site.register(Entry, EntryAdmin)

View file

@ -1,9 +1,12 @@
from django.db import models
from django.conf import settings
from conservancy import bsoup
from conservancy.apps.staff.models import Person
from datetime import datetime, timedelta
from django.conf import settings
from django.db import models
from .. import bsoup
from ..staff.models import Person
class EntryTag(models.Model):
"""Tagging for blog entries"""
@ -13,11 +16,11 @@ class EntryTag(models.Model):
class Meta:
db_table = 'techblog_entrytag' # legacy
def __unicode__(self):
def __str__(self):
return self.label
def get_absolute_url(self):
return u"/blog/?tag=%s" % self.slug
return "/blog/?tag=%s" % self.slug
class Entry(models.Model, bsoup.SoupModelMixin):
"""Blog entry"""
@ -27,8 +30,8 @@ class Entry(models.Model, bsoup.SoupModelMixin):
summary = models.TextField(help_text="Use raw HTML. Unlike in the press release model, this summary is not included at the beginning of the body when the entry is displayed.")
body = models.TextField(help_text="Use raw HTML. Include the full body of the post.")
pub_date = models.DateTimeField()
author = models.ForeignKey(Person)
tags = models.ManyToManyField(EntryTag, null=True, blank=True)
author = models.ForeignKey(Person, on_delete=models.PROTECT)
tags = models.ManyToManyField(EntryTag, blank=True)
date_created = models.DateTimeField(auto_now_add=True)
date_last_modified = models.DateTimeField(auto_now=True)
@ -41,11 +44,11 @@ class Entry(models.Model, bsoup.SoupModelMixin):
SOUP_ATTRS = ['body']
def __unicode__(self):
def __str__(self):
return self.headline
def get_absolute_url(self):
return (u"/blog/%s/%s/"
return ("/blog/%s/%s/"
% (self.pub_date.strftime("%Y/%b/%d").lower(),
self.slug))
@ -56,24 +59,24 @@ class Entry(models.Model, bsoup.SoupModelMixin):
# Ping google blogs and technorati. Taken from
# http://blog.foozia.com/blog/2007/apr/21/ping-technorati-your-django-blog-using-xml-rpc/
def save(self):
if settings.CONSERVANCY_DEVEL or True: # "or True" means it is disabled always
super(Entry, self).save()
if settings.DEBUG or True: # "or True" means it is disabled always
super().save()
return
blog_name = 'Software Freedom Law Center Blog'
blog_url = 'http://www.softwarefreedom.org/blog/'
post_url = ('http://www.softwarefreedom.org'
blog_name = 'Software Freedom Conservancy Blog'
blog_url = 'http://www.sfconservancy.org/blog/'
post_url = ('http://www.sfconservancy.org'
+ self.get_absolute_url())
import xmlrpclib
import xmlrpc.client
# Ping Technorati
j = xmlrpclib.Server('http://rpc.technorati.com/rpc/ping')
reply = j.weblogUpdates.ping(blog_name, blog_url)
j = xmlrpc.client.Server('http://rpc.technorati.com/rpc/ping')
j.weblogUpdates.ping(blog_name, blog_url)
# Ping Google Blog Search
j = xmlrpclib.Server('http://blogsearch.google.com/ping/RPC2')
reply = j.weblogUpdates.ping(blog_name, blog_url, post_url)
j = xmlrpc.client.Server('http://blogsearch.google.com/ping/RPC2')
j.weblogUpdates.ping(blog_name, blog_url, post_url)
# Call any superclass's method
super(Entry, self).save()
super().save()

View file

@ -1,8 +1,18 @@
from django.conf.urls import url, include
from conservancy.apps.blog.models import Entry, EntryTag # relative import
from conservancy.apps.staff.models import Person
from datetime import datetime
from conservancy.apps.blog.views import last_name, BlogYearArchiveView, BlogMonthArchiveView, BlogDayArchiveView, BlogDateDetailView, custom_index, query
from django.urls import path
from ..staff.models import Person
from .models import Entry, EntryTag
from .views import (
BlogDateDetailView,
BlogDayArchiveView,
BlogMonthArchiveView,
BlogYearArchiveView,
custom_index,
last_name,
query,
)
extra_context = {}
@ -13,12 +23,12 @@ info_dict = {
}
urlpatterns = [
url(r'^(?P<year>\d{4})/(?P<month>[a-z]{3})/(?P<day>\w{1,2})/(?P<slug>[-\w]+)/$', BlogDateDetailView.as_view(**info_dict)),
url(r'^(?P<year>\d{4})/(?P<month>[a-z]{3})/(?P<day>\w{1,2})/$', BlogDayArchiveView.as_view(**info_dict)),
url(r'^(?P<year>\d{4})/(?P<month>[a-z]{3})/$', BlogMonthArchiveView.as_view(**info_dict)),
url(r'^(?P<year>\d{4})/$', BlogYearArchiveView.as_view(**info_dict)),
url(r'^/?$', custom_index, dict(info_dict, paginate_by=4)),
url(r'^query/$', query),
path('<int:year>/<month>/<int:day>/<slug:slug>/', BlogDateDetailView.as_view(**info_dict)),
path('<int:year>/<month>/<int:day>/', BlogDayArchiveView.as_view(**info_dict)),
path('<int:year>/<month>/', BlogMonthArchiveView.as_view(**info_dict)),
path('<int:year>/', BlogYearArchiveView.as_view(**info_dict)),
path('', custom_index, dict(info_dict, paginate_by=4)),
path('query/', query),
]
# Code to display authors and tags on each blog page

View file

@ -1,11 +1,18 @@
from conservancy.apps.blog.models import Entry, EntryTag # relative import
# from django.views.generic.list_detail import object_list
from django.views.generic import ListView
from django.views.generic.dates import YearArchiveView, MonthArchiveView, DayArchiveView, DateDetailView
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
from conservancy.apps.staff.models import Person
from django.shortcuts import get_object_or_404, render
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
@ -95,7 +102,7 @@ def query(request):
query_string = d.urlencode()
return relative_redirect(request, '%s%s%s' % (base_url, '?' if query_string else '', query_string))
return relative_redirect(request, '{}{}{}'.format(base_url, '?' if query_string else '', query_string))
else:
authors = sorted(Person.objects.filter(currently_employed=True,
@ -106,13 +113,10 @@ def query(request):
def relative_redirect(request, path):
from django import http
from django.conf import settings
host = request.get_host()
if settings.FORCE_CANONICAL_HOSTNAME:
host = settings.FORCE_CANONICAL_HOSTNAME
url = "%s://%s%s" % (request.is_secure() and 'https' or 'http', host, path)
url = "{}://{}{}".format(request.is_secure() and 'https' or 'http', host, path)
return http.HttpResponseRedirect(url)
class BlogYearArchiveView(YearArchiveView):
@ -121,7 +125,7 @@ class BlogYearArchiveView(YearArchiveView):
extra_context = {}
def get_context_data(self, **kwargs):
context = super(BlogYearArchiveView, self).get_context_data(**kwargs)
context = super().get_context_data(**kwargs)
context.update(self.extra_context)
return context
@ -130,7 +134,7 @@ class BlogMonthArchiveView(MonthArchiveView):
extra_context = {}
def get_context_data(self, **kwargs):
context = super(BlogMonthArchiveView, self).get_context_data(**kwargs)
context = super().get_context_data(**kwargs)
context.update(self.extra_context)
return context
@ -139,7 +143,7 @@ class BlogDayArchiveView(DayArchiveView):
extra_context = {}
def get_context_data(self, **kwargs):
context = super(BlogDayArchiveView, self).get_context_data(**kwargs)
context = super().get_context_data(**kwargs)
context.update(self.extra_context)
return context
@ -148,6 +152,6 @@ class BlogDateDetailView(DateDetailView):
extra_context = {}
def get_context_data(self, **kwargs):
context = super(BlogDateDetailView, self).get_context_data(**kwargs)
context = super().get_context_data(**kwargs)
context.update(self.extra_context)
return context

View file

@ -1,5 +1,3 @@
# -*- encoding: utf-8 -*-
import io
import itertools
import re
@ -7,6 +5,7 @@ import re
import bs4
import bs4.element
class BeautifulSoup(bs4.BeautifulSoup):
"""A wrapper of the original BeautifulSoup class, with convenience methods added."""
@ -25,7 +24,7 @@ class BeautifulSoup(bs4.BeautifulSoup):
# for speed, but that doesn't work in our web application. On
# Debian stretch, at least, using lxml causes the web server WSGI
# application to go into an infinite loop.
super(BeautifulSoup, self).__init__(src, parser)
super().__init__(src, parser)
def _body_text(self, root):
# "Body text" is all the strings under the root element, in order,
@ -45,8 +44,7 @@ class BeautifulSoup(bs4.BeautifulSoup):
if not started:
break
else:
for s in self._body_text(child):
yield s
yield from self._body_text(child)
# It's not worth it to use issubclass here, because elements that
# don't have body text like Comments and CDATA are subclasses of
# NavigableString.
@ -143,7 +141,7 @@ class SoupModelMixin:
return elem_pred
def _sort_and_slice_elems(self, elem_seq, elem_key, pred, *slice_args):
seq = itertools.ifilter(pred, sorted(elem_seq, key=elem_key))
seq = filter(pred, sorted(elem_seq, key=elem_key))
if slice_args:
return itertools.islice(seq, *slice_args)
else:
@ -151,7 +149,7 @@ class SoupModelMixin:
def get_description(self):
"""Return a string with a brief excerpt of body text from the HTML."""
return u''.join(self._get_soup().some_body_text())
return ''.join(self._get_soup().some_body_text())
def get_image_urls(self, *slice_args):
"""Return an iterator of source URL strings of all images in the HTML.

View file

@ -0,0 +1,11 @@
from django.contrib import admin
from .models import Unsubscription
@admin.register(Unsubscription)
class UnsubscriptionAdmin(admin.ModelAdmin):
list_display = ['created', 'email', 'mailout', 'actioned']
list_editable = ['actioned']
list_filter = ['mailout', 'actioned']
search_fields = ['email', 'mailout']

View file

@ -0,0 +1,32 @@
# Generated by Django 4.2.11 on 2024-04-09 08:01
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = []
operations = [
migrations.CreateModel(
name='Unsubscription',
fields=[
(
'id',
models.AutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name='ID',
),
),
('created', models.DateTimeField(auto_now_add=True)),
('email', models.EmailField(max_length=254)),
],
options={
'ordering': ['created'],
},
),
]

View file

@ -0,0 +1,19 @@
# Generated by Django 4.2.11 on 2024-04-10 02:02
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('contacts', '0001_initial'),
]
operations = [
migrations.AddField(
model_name='unsubscription',
name='mailout',
field=models.SlugField(default=''),
preserve_default=False,
),
]

View file

@ -0,0 +1,18 @@
# Generated by Django 5.1.2 on 2024-12-10 18:34
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('contacts', '0002_unsubscription_mailout'),
]
operations = [
migrations.AddField(
model_name='unsubscription',
name='actioned',
field=models.DateField(blank=True, null=True),
),
]

View file

@ -0,0 +1,17 @@
from django.db import models
class Unsubscription(models.Model):
created = models.DateTimeField(auto_now_add=True, blank=True)
email = models.EmailField()
mailout = models.SlugField()
actioned = models.DateField(null=True, blank=True)
class Meta:
ordering = ['created']
def __str__(self):
if self.mailout:
return f'{self.email} ({self.mailout})'
else:
return self.email

View file

@ -0,0 +1,10 @@
{% extends "base_conservancy.html" %}
{% block outercontent %}
<div class="mw8 center ph2 ph3 mb4">
<h1>Unsubscribe</h1>
<form action="." method="post">
{{ form.as_p }}
<p><button type="submit" class="ph3 pv2">Submit</button></p>
</form>
</div>
{% endblock %}

View file

@ -0,0 +1,6 @@
{% extends "base_conservancy.html" %}
{% block outercontent %}
<div class="mw8 center ph2 ph3 mb4">
<h1>Unsubscribe successful</h1>
</div>
{% endblock %}

View file

@ -0,0 +1,7 @@
from django.urls import path
from .views import unsubscribe
urlpatterns = [
path('unsubscribe/', unsubscribe),
]

View file

@ -0,0 +1,53 @@
import logging
from django.forms import ModelForm
from django.views.decorators.csrf import csrf_exempt
from django.shortcuts import render
from .models import Unsubscription
logger = logging.getLogger(__name__)
class UnsubscribeForm(ModelForm):
class Meta:
model = Unsubscription
fields = ['email', 'mailout']
@csrf_exempt # Submitted directly by Gmail and similar - no CSRF token.
def unsubscribe(request):
"""Endpoint for use with Gmail one-click unsubscribe or similar.
Gmail now requires "List-Unsubscribe" headers for senders over a certain
monthly volume (currently 5000 emails). Add the following headers to your
mailout:
List-Unsubscribe: <https://sfconservancy.org/contacts/unsubscribe/?email=foo@bar.com&mailout=jan2024-news>
List-Unsubscribe-Post: List-Unsubscribe=One-Click
Interfaces like Gmail will then provide a user interface to unsubscribe
which will hit this endpoint.
Our understanding is that Gmail will submit the form with and HTTP POST request, but
with GET-style URL parameters. Hence this feature has been built to work both with
GET and POST-style data as well as GET and POST methods, just in case. Test it like
this:
curl -X POST -d 'email=foo@bar.com&mailout=jan2024-new' https://sfconservancy.org/contacts/unsubscribe/
curl -X POST 'https://sfconservancy.org/contacts/unsubscribe/?email=foo@bar.com&mailout=jan2024-new'
Or visit in a browser:
https://sfconservancy.org/contacts/unsubscribe/?email=foo@bar.com&mailout=jan2024-new
"""
if request.method == 'POST':
logger.debug('Unsubscribe GET: %s', request.GET)
logger.debug('Unsubscribe POST: %s', request.POST)
form = UnsubscribeForm(request.GET.dict() | request.POST.dict())
if form.is_valid():
form.save()
logger.info('Unsubscribed %s', form.cleaned_data['email'])
return render(request, 'contacts/unsubscribe_success.html')
else:
form = UnsubscribeForm(request.GET.dict() | request.POST.dict())
return render(request, 'contacts/unsubscribe.html', {'form': form})

View file

@ -0,0 +1,264 @@
{% extends "base_compliance.html" %}
{% load static %}
{% block subtitle %}Give Up GitHub - {% endblock %}
{% block submenuselection %}GiveUpGitHub{% endblock %}
{% block content %}
<h1>Give Up GitHub!</h1>
<p>Since June 2022,
we <a href="https://sfconservancy.org/blog/2022/jun/30/give-up-github-launch/">have been
encouraging and help FOSS developers</a> to <strong>give up on
GitHub</strong>! </p>
<div class="picture-small right">
<img src="{% static 'img/GiveUpGitHub.svg' %}" alt="GitHub so-called “Octocat” logo/mascot in one tentacle holds 💰. Six other tentacles form a cage for the words “USER RIGHTS” — which are set in blue stone but are crumbling under the force of the tentacles. The final tentacle reaches out with an open palm — presuambly to collect even more rights & money from its users."/>
</div>
<p>We realize this is not an easy task; GitHub is ubiquitous. Through their
effective marketing, GitHub has convinced Free and Open Source Software
(<abbr>FOSS</abbr>) developers that GitHub is the best (and even the only) place for FOSS
development. However, as a proprietary, trade-secret tool, GitHub itself is
the very opposite of FOSS. By contrast, Git was
designed <a href="http://www.h-online.com/open/features/The-saga-of-Git-Lightning-does-strike-twice-1051559.html">specifically
to replace a proprietary tool (BitKeeper)</a>, and to make FOSS development
distributed &mdash; using FOSS tools and without a centralized site. GitHub
has distorted Git &mdash; creating add-on features that turn a distributed,
egalitarian, and FOSS system into a centralized, proprietary site. And, all
those add-on features are controlled by a single, for-profit company &mdash; Microsoft. By
staying on GitHub, established FOSS communities bring newcomers to this
proprietary platform &mdash; expanding GitHub's reach. and limiting the
imaginations of the next generation of FOSS developers.</p>
<p>We know that many rely on GitHub every day. Giving up a ubiquitous,
gratis service that has useful (albeit proprietary) features remains perennially
difficult. For software developers, giving up GitHub will be even harder
than giving up Facebook and Twitter/X! We don't blame anyone who struggles, but hope you
will read the reasons and methods below to give up GitHub and join us in
seeking better alternatives!</p>
<h2>Why Give Up GitHub?</h2>
<p>There are so many reasons to give up on GitHub, but we list here a few of
the most important ones:
<ul>
<li><p>Microsoft has escalated the incorporation of its for-profit
<a href="https://github.com/features/copilot" rel="nofollow">Copilot
product</a>. The Copilot banner now incorporates many different, proprietary,
so-called &ldquo;Artificial Intelligence&rdquo; (<abbr>AI</abbr>)
products. However, the first Copilot product was designed
to automatically generate code interactively for developers, and that
feature is still pushed on GitHub users.
Copilot's AI model was trained
(<a href="https://github.blog/2021-06-30-github-copilot-research-recitation/"
rel="nofollow">according to GitHub's own statements</a>) exclusively with
projects that were hosted on GitHub, including many licensed
under <a href="https://sfconservancy.org/copyleft-compliance/glossary.html#copyleft">copyleft</a>
licenses. (Microsoft even admits that there was one document that they
encountered (and ignored) <q>a whopping 700,000 different times during
training &mdash; &hellip; the GNU General Public License</q>.</p>
<p>Most of those projects are not in the &ldquo;public
domain&rdquo;, they are licensed
under <a href="https://opensource.org/licenses"><acronym title="Free and Open Source Software">FOSS</acronym> licenses</a>. These licenses
have <em>requirements</em> including proper author attribution and, in
the case of <a href="https://copyleft.org/"><em>copyleft</em>
licenses</a>, they sometimes require that works based on and/or that
incorporate the software be licensed under the same copyleft license as
the prior work. Microsoft and GitHub have been ignoring these license
requirements for more than a year. Their only defense of these
actions <a href="https://web.archive.org/web/20210709181805/https://twitter.com/natfriedman/status/1409914420579344385">was
a still-unretracted statement by their former CEO</a>, in which he falsely claims that
unsettled law on this topic is actually settled. In addition to the legal
issues,
the <a href="https://sfconservancy.org/blog/2022/feb/03/github-copilot-copyleft-gpl/">ethical
implications of GitHub's choice to use copylefted code</a> in the service
of creating proprietary software are grave.</p> </li>
<li>Along with the crescendo of &ldquo;AI&rdquo; ballyhoo, Microsoft has rolled out more
products that include these technologies into GitHub. Microsoft's Copilot
is <a href="https://mastodon.social/@glyph/114995950245874315">now
generating issues and pull requests and GitHub users <strong>cannot opt
out</strong></a>. This use is unconscionable and is reason enough alone
to <cite>Give Up GitHub</cite>. Microsoft shamelessly promotes this
force-feeding of these dubious technologies to all GitHub users; so much so
that
Microsoft <a href="https://www.geekwire.com/2025/github-will-join-microsofts-coreai-group-with-departure-of-ceo-thomas-dohmke/">fully
incorporated GitHub to be a mere division of its &ldquo;CoreAI&rdquo;
division</a>. GitHub users and their work are (sadly) willingly-offered input
to that division's work!</li>
<li id="ICE-contract-details"><p>In 2020, the community discovered that
GitHub <a href="https://www.theatlantic.com/technology/archive/2020/01/ice-contract-github-sparks-developer-protests/604339/">has
a for-profit software services contract with the USA Immigration and Customs
Enforcement (ICE)</a>. Activists, including some GitHub employees, have been
calling on GitHub for two years to cancel that contract. GitHub's primary
reply has been that their parent company, Microsoft, has sold Microsoft Word
for years to ICE without any public complaints. They claim that this somehow
justifies <em>even more</em> business with an agency whose policies are
problematic. Regardless of your views on ICE and its behavior, GitHub's
ongoing <a href="https://www.latimes.com/business/technology/story/2020-06-12/github-ceo-black-lives-matter-employees-demand-end-ice-contract">dismissive and disingenuous</a> responses to the activists who raised this important issue show that GitHub puts its profits above concerns from the community.</p></li>
<li><p>While GitHub pretends to be pro-FOSS
(like <a href="https://lwn.net/Articles/17822/">SourceForge before
them</a>), their entire hosting site is, itself, proprietary and/or
trade-secret software. We appreciate that GitHub allows some of its
employees to sometimes contribute FOSS to upstream projects, but our
community has been burned so many times before by companies that claim to
support FOSS, while actively convincing the community to rely on their
proprietary software. We shouldn't let GitHub burn us in this same way!</p></li>
<li><p>GitHub differs from most of its peers in the FOSS project hosting
industry, as GitHub does not even offer any self-hosting FOSS option.
Their <em>entire</em> codebase is secret. For example, while we have our
complaints about GitLab's business model of parallel &ldquo;Community&rdquo;
and &ldquo;Enterprise&rdquo; editions, at least GitLab's Community Edition
provides basic functionality for self-hosting and is 100% FOSS. Meanwhile,
there are <em>non-profit</em> FOSS hosting sites such
as <a href="https://codeberg.org">Codeberg</a>, who develop their platform
publicly as FOSS.</p></li>
<li><p>GitHub has long sought to discredit copyleft generally. Their various
CEOs have often spoken loudly and negatively about copyleft, including their
founder (and former CEO)
devoting <a href="https://www.youtube.com/watch?v=-bAAlPXB2-c">his OSCON
keynote on attacking copyleft and the GPL</a>. This trickled down from the
top. We've personally observed various GitHub employees over the years
arguing in many venues to convince projects to avoid copyleft;
we've <a href="https://github.com/BenKallos/legislation/issues/2#issue-46911010">even
seen a GitHub employee do this in a GitHub bug ticket directly</a>.</p>
</li>
<li><p>GitHub is now fully part of Microsoft &mdash; a company whose
executives have historically repeatedly attacked copyleft licensing
&mdash; ongoing regularly since 2001.</p></li>
</ul>
<h2>How Do I Give Up GitHub?</h2>
<p>The reason that it's difficult to leave GitHub is a side-effect of one of
the reasons to leave them: proprietary vendor lock-in. We are aware that
GitHub, as the &ldquo;Facebook of software development&rdquo;, has succeeded
in creating the most enticing walled garden ever made for FOSS developers.
Just like leaving Facebook is painful because you're unsure how you'll find
and talk with your friends and family otherwise &mdash; leaving GitHub is
difficult because it's how you find and collaborate with
co-developers. GitHub may even be how you find and showcase your work to
prospective employers. We also know that some Computer Science programs
even <em>require</em> students to use GitHub.</p>
<div class="picture-small left">
<img src="https://sfconservancy.org/img/GiveUpGitHub.svg" alt="A parody of the GitHub logo, walling off user rights and demanding payment"/>
</div>
<p>Accordingly, we call first on the most comfortably-situated developers
among you &mdash; leaders of key FOSS projects, hiring and engineering
managers, and developers who are secure in their employment &mdash; to take
the first step to reject GitHub's proprietary services. We recognize that
for new developers in the field, you'll receive pressure from potential
employers (even those that will otherwise employ you to develop FOSS) to
participate on GitHub. Collective action requires the privileged developers
among us to lead by example; that's why we're not merely asking you leave
GitHub, but we're spearheading an effort to help everyone give up GitHub over
the long term. You can help protect newcomers from the intrinsic power
imbalance created by GitHub by setting the agenda for your FOSS project and
hosting your project elsewhere.</p>
<p>As such, we're speaking first to the hiring managers, community leaders,
and those in other positions of power that encourage the use of GitHub to new
contributors and existing communities. Once someone in power makes the choice
to host a project on GitHub, the individual contributors have little choice
but to use these proprietary and damaging products. If you are making
decisions or have political power within your community and/or employer, we
urge you to use your power to center community efforts through FOSS platforms
rather than GitHub. If you're an individual contributor who feels powerless
to leave GitHub, read our (growing) list of recommendations below on how to
take the first steps.</p>
<p>Long term, we've been maintaining this stable URL (that can always be reached
by <a href="https://GiveUpGitHub.org">GiveUpGitHub.org</a>) to include links
to resources to help everyone &mdash; from the most privileged developer to
newcomers and members of underrepresented groups in FOSS &mdash; to give up
on GitHub. If you don't feel that you or your project can yet leave GitHub,
we ask that you raise awareness
by <a href="https://sfconservancy.org/docs/SupportGiveUpGitHub-README-snippet.md">adding
this section to your README.md</a> to share your concerns about GitHub with
your users. If you're ready to leave GitHub, you
can <a href="https://sfconservancy.org/docs/GiveUpGitHub-README.md">use this
README.md template</a> to replace your current one.</p>
<p>
<blockquote><p>千里之行始於足下<br/>The journey of a thousand miles begins with a single step.</p></blockquote>
<div style="text-align: right"><p> &mdash; <cite>老子 (Lao Tsu) in Chapter 64
of 道德经 (Tao Te Ching)</cite>
</p></div>
</p>
<h2>Resources to Give Up GitHub</h2>
<p>Here are some resources to help you quit GitHub. We'll be expanding this
list regularly as we find more resources. If you'd like to suggest a
resource not yet listed, you can discuss it on
the <a href="https://lists.sfconservancy.org/mailman/listinfo/give-up-github">Give-Up-GitHub
mailing list</a>.</p>
<p>Our primary recommendation at this time for self-hosting
is <a href="https://forgejo.org/">Forgejo</a>, and if you would like a
hosted service, we recommend <a href="https://codeberg.org">Codeberg</a>
(which is built on Forgejo). Below we include a list of various options
for both third-party hosting and self-hosting:</p>
<ul>
<li>Alternative Hosting Services:
<ul>
<li><a href="https://codeberg.org">Codeberg</a></li>
<li><a href="https://sourcehut.org/">SourceHut</a></li>
</ul>
<li>Self-Host (or join a group that self-hosts). A few options:
<ul>
<li><a href="https://forgejo.org">Forgejo</a></li>
<li> <a href="https://gitlab.com/rluna-gitlab/gitlab-ce">GitLab
Community Edition</a> (note, the GitLab Enterprise Edition, which is
provided to the public on gitlab.com, is (like GitHub) trade-secret,
proprietary, vendor-lock-in software)</li>
<li><a href="https://sr.ht/~sircmpwn/sourcehut/">SourceHut</a></li>
</ul></li>
</ul></p>
<h2>Ways To Help Even <em>Before</em> You Give Up GitHub</h2>
<p>First of all, please promote our campaign by sharing
the <a href="https://giveupgithub.org"><strong>GiveUpGitHub.org</strong></a>
URL widely, along with
the <a href="https://sfconservancy.org/img/GiveUpGitHub.svg">GiveUpGitHub
logo</a> on public platforms like
the <a href="https://floss.social/@downey/110657456122551808">fediverse
/ Mastodon</a> &mdash; using the hashtag #GiveUpGitHub.</p>
<p>Second, you can also raise the importance of this issue
even while you're still <em>using</em> GitHub.
<ul>
<li><p><a href="https://sfconservancy.org/docs/SupportGiveUpGitHub-README-snippet.md">Add
this section to your README.md</a> to share your concerns about GitHub
with your users.</p></li>
<li><p>Respectfully and kindly ask, before you contribute to a project on
GitHub, if they could provide alternative means to contribute other than
using GitHub.</p></li>
<li><p>Explain to your employer the dangers of relying on GitHub's proprietary
vendor lock-in products.</p></li>
<li><p>Join
the <a href="https://lists.sfconservancy.org/mailman/listinfo/give-up-github">give-up-github
mailing list</a> and start threads about your difficulties leaving GitHub.
This will help us explore solutions with you and add material to this
page.</p></li>
</ul>
</p>
{% endblock %}

View file

@ -0,0 +1,176 @@
{% 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 also serves as
President of Amateur Radio Digital Communications, a private foundation.
</p>
<h2 id="bkuhn">Bradley M. K&uuml;hn</h2>
<p>In addition to being a Director-at-large of SFC,
Bradley K&uuml;hn is also on staff as
<acronym title="Software Freedom Conservancy">SFC</acronym>&apos;s
<a href="/about/staff/#bkuhn">Policy Fellow and
Hacker-in-Residence</a>.</p>
<p>K&uuml;hn began his work in the software freedom movement
as a volunteer in 1992 &mdash; as an early adopter of Linux-based systems and
contributor to various
<acronym title="Free and Open Source Software">FOSS</acronym> projects,
including Perl. K&uuml;hn worked during the 1990s as a system administrator and software developer
for various companies, and also spent one year teaching high school Advanced Placement Computer
Science. As FSFs Executive Director from 2001&ndash;2005, K&uuml;hn led
<acronym title="Free Software Foundation">FSF</acronym>s <acronym title="General Public License">GPL</acronym>
enforcement, launched its Associate Member program, and invented the copyleft
network services clause found in the Affero General Public License (<abbr>AGPL</abbr>).</p>
<p>K&uuml;hn was SFCs primary
volunteer from 2006&ndash;2010, and became its first staffer in 2011. K&uuml;hns
work at SFC focuses
on <a href="https://sfconservancy.org/copyleft-compliance/">enforcement of
copyleft and the GPL agreements</a>, FOSS licensing policy, and non-profit
infrastructural solutions for FOSS. SFC kindly donates some of K&uuml;hn's time as
Co-Editor-in-Chief of <a href="https://next.copyleft.org">the copyleft-next
license</a>.</p>
<p>K&uuml;hn holds a summa cum laude B.S. in
Computer Science
from <a href="https://www.loyola.edu/academics/computer-science">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/">K&uuml;hns
Masters thesis</a> discussed methods for dynamic interoperability of FOSS
programming languages. K&uuml;hn received the 2012 Open Source Award, and the 2021
Award for the Advancement of Free Software &mdash; both in recognition for
his lifelong policy work on copyleft licensing and its enforcement.</p>
<p>K&uuml;hn writes about his work
on <a href="https://sfconservancy.org/blog/?author=bkuhn">SFC&apos;s blog</a>
and as <a rel="me" href="https://fedi.copyleft.org/@bkuhn">@bkuhn@copyleft.org on
the fediverse</a> (via Mastodon).</p>
<h2 id="allison">Dr. Allison Randal &ndash; 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 OReilly 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 %}

View file

@ -0,0 +1,67 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBFpKhvwBEADJSrnuJiVEj7eGgPGmF9Wxc2/6k5tdr19wZmoy53jjb/TxWN+z
CnURri/NdONPzV5qLBFugLa/dvFlAzUaO342dFP9R84iHp2S0Y6cIQkxbjJZa+/O
EQuNzlRfaeDjcn/lb8xa3S1t4hYQuKzzUT0hY2jfLTQUKDgFi9PDOD3osOEsjCGk
Jb5n2fXPwhxo00H2vs1NptCaw6wXMnT91zJ7lBTnwVjWhUCzpjCTCU4d50KBxdon
WzvzHCdm9QyT9z0jHpQPwOteb++eW+R0Ljz1uIlWx/0lX9EKtcfAsHUbpbUpQbwN
uP3XsjQ9dclcFSe9cM9IrnpCjmNAs0snjZAGlZ0AOw0aQ4Of/3dDocaCemD7rQ9k
8GdE4qtURz3UGMgLM7EdMwE27hAO0cdmE5LEvLHXiImV93lAXLxSs5ALkTlQrfg8
aIt9vsoOPu6E9ypajxwO3ChP06mvkzMZ+s8IetHRYelVhF7STDUfdDNHWHuKYV1z
UimHFb4jvhuouF2eMfzdYWAqxIMv3cQx+uwrr3mEMSVw4i10azI2blUkyj/IxalO
2zjZnJtXm708BdPKrbaJspirxrGNUMBFwCvOAZDJX0mcA8hwEPssEu0vC+TQqJKZ
7fKLNtJNW1yf29kHXm9N9l+9GV9x6kDRTQV1fv4UeLv+8Z/AZXPSDAG14wARAQAB
tFhUYXggSW5mb3JtYXRpb24gb2YgU29mdHdhcmUgRnJlZWRvbSBDb25zZXJ2YW5j
eSA8YWNjb3VudHMtdGF4aW5mb0B0aXguc2Zjb25zZXJ2YW5jeS5vcmc+iQJOBBMB
CAA4FiEEU3EotBU0zKNCGveFL8VOqkBGBrgFAlsHVFsCGwMFCwkIBwIGFQgJCgsC
BBYCAwECHgECF4AACgkQL8VOqkBGBrjo3A//bfO2tEbWIbT4N5AqnWckr4q8oVmq
idR8yDQ0FgkxZFpIywOBJngN27aDlDi/gx5T3Ks9nRQg5GgLYC7PNz8NkN1rYRKr
siWaWavH20HZVwUpfqLRn4QV71GI4rYh/z/hTUiSHtSPNRWpdOsqCTKY7ykCncmY
uDrHV7/++/K0Ba+PUHveQ0Aig+pXrSCb9wszNl9CFyMbLe84Jcvmv+F/KceEi9uM
VUGpaKGrG1zc0hfc2u2/zeG5YfOq95VTzJnAHxEJzi/dlO9HMipVA5Ulg3ctdMdV
HIgW8zRiMfEVCsLebKUnhHoxKeoaUzjl+RFtCTr/GkV0hkPnKT2SXjaSUvB7Zmaj
4U5rlGAXckmnXSoOu7+jkiQSxz5TI2cnQ7MKs1GNeEm80NiYCbLPOSKVadBAdsUt
WtES/SSr1cTrCBC3g2Smk5UCZsGmRqKszvLv6iMIfQ8iY/CRvpzohmmjMexcvMb3
OvKih847lAS3Ic5cTNL83LqjksEXn6NeffxjM559xq0oNPPzyZwIB2qs2VUOgxSx
L+TftVxNbFL5K2cDiTh7LgW6Blalm1EP3ndLtXV9Jvdds9fyhncURidXZ9Z9Isgo
hyUroVmvN8UV9MpWGn/lK9SbkcZRz+9IGgASGsyVRowsyPXMg1ytaeIbQXT8j12h
SNnM2xPRLH1p7Oi0WkFjY291bnRpbmcgYXQgU29mdHdhcmUgRnJlZWRvbSBDb25z
ZXJ2YW5jeSAoYWNjb3VudGluZzIwMTgpIDxhY2NvdW50aW5nQHNmY29uc2VydmFu
Y3kub3JnPokCTgQTAQgAOBYhBFNxKLQVNMyjQhr3hS/FTqpARga4BQJaSob8AhsD
BQsJCAcCBhUICQoLAgQWAgMBAh4BAheAAAoJEC/FTqpARga4R8MQAKuBVVtoRxmR
6LZ6y8DSrMYeRqJDBjLrRWkb0Z8+BoMeWoqsL8hbTBwJq9HYM+acdQIT8RBJ5/Un
0azOa95No5PAWeFlO9x/ymil6PdFajtcAlS92nhnxnlbqv4mzowwDqxWQBRu3QNz
0vFj21o0fwnSlw9n9NMxjvxDrFXBj0iIp6+pfdSc9xCaGz3buGkX/qzfNUpOj8O9
CERh1XXA1yz7Fqk+yREHGYVkm5mdEUg1cfBUT7PiliQtpBofFin3FWEPcQozISEO
B0TcPgR181H64R2ZYQQSgoxASVj+pdmGFRf0Ner0XnbsUlgKMbXSTdN5sSDBBpjL
4cXw4Er9c7vUJrRnJifsSMcwuV5Ui4rqquH45wh6bIPUvt1bd/io5SCzmh9TwIR3
08d7LA0Jm6CCLmdYGqWVcKpPiIMEQloZb9SH/5inMgEw+Kz9n3wxOgcJBndRXcwR
o8jyhdNjPiDsElHxrpBbyltu/j7dgug+G6lECFrvUPF6TGylKeTRjgIAeg8K7xeo
a4Y8SnD7kOixLztrN5c5X3Piuxq1unIW+zcrseE+DIeovVQ2yAOXzLNeLubNz+5M
aNQm9k2FMtciRPUs/xeIcxrWHvuBsk0xJjiGvhUG8h4Dt/epBhvzMPd0Oq2fMEpI
cJihJNmLWTLeKMKUD10fqQT05HbDaktYuQINBFpKhvwBEACxLzrMYli4JTROwxC1
64FzWRo2kZRfaYlJgq71PcCeUS6pVJaE4x5KC1jxlQJtJRk02jQQ+kYhqyzL2wsX
eh+aFlvxWzj6T32ZzmHTNM2HpK/WG37xgrtx6fGuSmjYsDrVwUQqKmVVgS45fWty
B/UCMe4BhxlAGB6s5SncmL/75C884omSRbCv5wBU8piJ5vM9y41aWnLgkSc3NvR7
oYRdp+R9fogvpW7JkQYjVkxKLiFcXLyVc1q15K0QP8fWOEP1i2H+wtoae9yNIVKO
vCGNDHNIo27KTPGexOKX/uDupTxeAOkjhOCMzmbm+8oP6pVnRK+Uq0J2IlqHSYJb
p23x/T8UoGb8MhG/gdY8pcKNshLl/A3mvwaAM2Ctvj++e2jEBnbA6rRbw2Coze4q
XOboIZDNnSIAn3qUMSaux4zfPu7A0Ebtu/uRbiHFX74tk1ZuDMdUMohlGLBVqNmt
G2Kb+og5+6Bw1X//FHUTfTU5RecUcFwEE43xaERVRd8fAtTLhHU4CMzcDyBZ+NGW
//AeL5ao6z3kPSHQHPp/eBckmd69JMtuBMpZPBa3Vg6AyU1Nsvpjj6SNFpwRhN7Z
nkDVM/hFpl9MJuL6T2d6OdjGbUXgLcZAcpaZf2Trsyws5AHp+Di+29EMYSTpDacP
jYJYpanYlFiuVj7G86ClTwloRwARAQABiQI2BBgBCAAgFiEEU3EotBU0zKNCGveF
L8VOqkBGBrgFAlpKhvwCGwwACgkQL8VOqkBGBrgmUg//bFwl++aOZUYh/lzruUNt
Qpf1gKIbSi973nZFQdaS7+KUvMJdIs0itoraE+Tv91juGRyTyHS9LiIOLlidFt3+
IXkyO0tf0skgK5xlpNrRYsYD5FDSu1H4yHIqYloApEcAmDGulaE29VK7tPJpH4IE
Wq5hJPpkG6PMmH9a8A2Psr0a4CEIhDVx38roOhTNzjg4/0GdZXoRIrOOidzC0ioj
YfTgkJo/Fx4sc5exgdL8JHa5k+hDcqy9c+zqHud4/eTgWaKWWjT3yipHv4fFvoMl
MEQkfFdBgoCvZfR4RDLqDbiXtxNq7CwPYIhNL7Bt989oa6OTg0S5hT9ItvUuhA/U
Hmq/X2Ej9owYY1WAKeAav0toD38SsOa1JL9qkWXg+3fxdfQnbzqY/GTB46cZX1nb
LgcaK6u/xQFv5g0bnlltJzW7pU+96nd99olGNYEt+qTeDiTQrj3V42AsJKv/xYMq
chEHtw1kVkZLacSJHlvLHT3P8rW/nVKghtPn7Fv2YI0EoIeCoDerSMWwMErBrpj/
zagqh5HvG/nkDWWTxYPXJ+PJAenc5Owx+ff+piZsMZ6K0AkAreHuDFUDj3lIxTo4
T7CUfRLHAOO5fd7oSAAGFEPtsJxdgQR4j9BitCc0/jppQzMPsNKNmNCXlkWEo6Hg
gEeyJpmQtX/Fsj9VBllEmlM=
=QGYX
-----END PGP PUBLIC KEY BLOCK-----

View file

@ -20,8 +20,11 @@ If you don't hear from us within a week, please try again.</p>
Brooklyn, NY 11201-3548
</p>
<h2>Internet Relay Chat</h2>
<h2>Chat</h2>
<p>Our IRC channel is #conservancy on irc.freenode.net.</p>
<p>Our official chat channel is <a href="xmpp:general@chat.sfconservancy.org?join">#general</a>
on our XMPP server chat.sfconservancy.org. You can also access from our <a href="https://chat.sfconservancy.org">web client</a>
We bridge the channel to #conservancy on irc.libera.chat and you can join via Matrix <a href="https://matrix.to/#/#xmpp_general_chat.sfconservancy.org:matrix.org">here</a>
</p>
{% endblock %}

View file

@ -14,6 +14,7 @@ members of Conservancy.
for membership in Conservancy.</p>
<h2>Jeremy Allison</h2>
<a id="jeremy"></a>
<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
@ -24,10 +25,11 @@ 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 Google, Inc. who fund him to work on improving Samba and
solving the problems of Windows and Linux interoperability.</p>
<p>He works for CIQ as a Distinguished Engineer, working on Open
Source code.</p>
<h2>Tom Callaway</h2>
<a id="tom"></a>
<p>Tom Callaway has been working for Red Hat since 2001. He started in
Sales Engineering and has been the Fedora Engineering Manager since 2008.
@ -42,26 +44,8 @@ best not to make too big of a fool of himself.</p>
<p>When not working, Tom enjoys geocaching, ice hockey, gaming, science
fiction, and pinball.</p>
<h2>Karl Fogel</h2>
<p>Karl Fogel is an open source developer, author, and copyright reform
activist. He is a partner at <a href="http://opentechstrategies.com/">Open
Tech Strategies</a> which provides strategic consulting for collaborative
open technology ventures. He is also the founder and executive director
of <a href="http://questioncopyright.org/">QuestionCopyright.org</a>. After
working on CVS and writing Open Source Development With CVS (Coriolis, 1999),
he went to CollabNet, Inc as a founding developer in the Subversion
project. Based on his experiences there, he
wrote <a href="http://producingoss.com/">Producing Open Source Software: How
to Run a Successful Free Software Project</a> (O'Reilly, 2005), which is a
highly-cited resource in the open source community. After a brief stint as an
Open Source Specialist at Google in 2006, he left to found
QuestionCopyright.org. In addition to QuestionCopyright.org, he also serves
as Open Civics Development Specialist at Civic Commons and sat on the board
of the Open Source Initiative. Fogel now serves as the chairperson of the
Evaluations Committee.</p>
<h2>Mark Galassi</h2>
<a id="mark"></a>
<p>Mark Galassi has been involved in the GNU project since 1984. He
currently works as a researcher in the International, Space, and Response
@ -76,6 +60,7 @@ earned his BA in Physics at Reed College and a PhD from the Institute for
Theoretical Physics at Stony Brook.</p>
<h2>Bdale Garbee</h2>
<a id="bdale"></a>
<p>Bdale Garbee is a technologist and community builder. He has deep
connections to free and open source software communities, having been an
@ -89,46 +74,42 @@ Theoretical Physics at Stony Brook.</p>
model rockets. Garbee is a frequent speaker and presence at free and open
source software events. </p>
<h2>Mike Hostetler</h2>
<h2>Bradley M. K&uuml;hn</h2>
<a id="bkuhn"></a>
<p>Mike Hostetler is an inventor, entrepreneur, programmer and proud
father. Having worked with web technologies since the mid 1990's, Mike has
had extensive experience developing web applications with PHP and
JavaScript. Currently, Mike works as the Founder and CEO of appendTo, LLC,
the company dedicated to jQuery, based in Denver, Colorado. Heavily
involved in Open Source, Mike is an alumni of the jQuery Core team,
participates in the QCubed PHP5 Framework project, and participates in the
Drupal project. When not in front of a computer, Mike enjoys hiking,
fly-fishing, snowboarding and spending time with his family.</p>
<h2>Bradley M. Kuhn</h2>
<p>Bradley M. Kuhn began his work in the Free Software Movement as a
volunteer when, in 1992, he became an early adopter of the popular
GNU/Linux operating system, and began contributing to various Free Software
projects. He worked during the 1990s as a system administrator and
software development consultant for Westinghouse, Lucent Technologies, and
numerous small companies. He also spent one year teaching Advanced
Placement Computer Science (using GNU/Linux and GCC) at Walnut Hills High
School in Cincinnati. In January 2000, he was hired by the Free Software
Foundation (FSF), and he served as its Executive Director from March 2001
until March 2005, when he left FSF to join the Software Freedom Law Center
(SFLC), where he worked as SFLC's Policy Analyst and Technology Director
from 2005 until October 2010, when he joined Conservancy as its Executive
Director. Kuhn holds a summa cum laude B.S. in Computer Science from
Loyola College in Maryland, and an M.S. in Computer Science from the
University of Cincinnati. His Master's thesis discussed methods for
dynamic interoperability of Free Software languages.</p>
<h2>Mike Linksvayer</h2>
<p>Mike Linksvayer serves on the boards of AcaWiki and OpenHatch,
and on the Open Definition Advisory Council, and is Policy Director at GitHub.
Previously Mike was CTO, VP, and a Senior Fellow at Creative Commons, and a
co-founder of Bitzi, an early open content/open
data mass collaboration platform.</p>
<p><a href="http://ebb.org/bkuhn/">Bradley M. K&uuml;hn</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>. K&uuml;hn 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. K&uuml;hn's
non-profit career began in 2000, when he was hired by the FSF. As FSF's
Executive Director from 2001&ndash;2005, K&uuml;hn
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>. K&uuml;hn
began as Conservancy's primary volunteer from 20062010, and became its first
staff person in 2011. K&uuml;hn 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/">K&uuml;hn's
Master's thesis</a> discussed methods for dynamic interoperability of Free
Software programming languages. K&uuml;hn 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. K&uuml;hn 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>Tom Marble</h2>
<a id="tom"></a>
<p>Tom Marble is best known for being the first &ldquo;OpenJDK
Ambassador&rdquo; on the Sun Microsystems core team that open sourced the
@ -147,21 +128,6 @@ legal engineering background for client projects as diverse as telematics for
electric vehicles, probabilistic model checking, autonomous cyber defense,
and multiplayer online gaming.</p>
<h2>Deb Nicholson</h2>
<p>Deb Nicholson wants to make the world a better place with technology and
social justice for all. After many years of local political organizing, she
started handling outreach for the Free Software Foundation and became an
enthusiastic free software activist. She likes talking to developers about
software patents, to project maintainers about leadership and to activists
about free software. She is currently the Community Outreach Director at
the <a href="http://www.openinventionnetwork.com/">Open Invention Network</a>
and the Community Manager at <a href="https://mediagoblin.com/">GNU
MediaGoblin</a>. She also serves on the board
at <a href="https://openhatch.org/">Open Hatch</a>, a.k.a. Free Software's
Welcoming Committee. Nicholson also organizes Boston Software Freedom
Day.</p>
<h2>Karen Sandler</h2>
<a id="karen"></a>

View file

@ -0,0 +1,21 @@
{% extends "base_about.html" %}
{% block subtitle %}About - {% endblock %}
{% block submenuselection %}Overview{% endblock %}
{% block content %}
<h1>About Software Freedom Conservancy, Inc.</h1>
<p>Software Freedom Conservancy is a nonprofit organization
centered around ethical technology. Our mission is to ensure the right to
repair, improve and reinstall software. We promote and defend these rights
through fostering free and open source software (FOSS) projects, driving
initiatives that actively make technology more inclusive, and advancing policy
strategies that defend FOSS (such as copyleft).</p>
<p>If you have general questions about Conservancy and its
work, <a href="/about/contact/">contact information</a> is available.
Conservancy is primarily supported by <a href="/donate">your charitable
donations</a>.</p>
{% endblock %}

View file

@ -1,4 +1,5 @@
{% extends "base_about.html" %}
{% load static %}
{% block subtitle %}License and Sources - {% endblock %}
{% block submenuselection %}License{% endblock %}
{% block content %}
@ -10,7 +11,7 @@
this site</a>, but it may be more interesting to know that the site
is running on stock Debian 8 with Apache, Django, mod_python,
and sqlite installed, and that the main sources for the site's code
itself are <a href="https://k.sfconservancy.org/website">available in
itself are <a href="https://f.sfconservancy.org/Conservancy/website">available in
a git repository</a>.</p>
<p>The documents on this website are
@ -20,7 +21,7 @@
<p>Conservancy's Logo is also licensed
under <a href="https://creativecommons.org/licenses/by-sa/4.0">CC-By-SA
4.0</a>. A <a href="/img/conservancy-logo_package.zip">Conservancy logo
4.0</a>. A <a href="{% static 'img/conservancy-logo_package.zip' %}">Conservancy logo
package in ZIP format is available, which includes high quality SVG, PNG
and other formats</a>.</p>

View file

@ -0,0 +1,78 @@
{% extends "base_about.html" %}
{% block subtitle %}Outside Counsel, et alia - {% endblock %}
{% block submenuselection %}Outside{% endblock %}
{% block content %}
<h1>Other Outside Counsel</h1>
<h2>Olivier Hugot &ndash; Of Counsel, France</h2>
<p>Olivier Hugot is a member of the New York (2003) and Paris (2004) Bars.
He advises and represents French and foreign companies in the areas of
Internet, luxury and creation. He assists many innovative Internet
entrepreneurs and companies, both in formalizing their projects as well as
in development during fundraising.</p>
<p>He advises clients in connection with the protection and exploitation
of their rights in compliance with the constantly evolving internet
regulations. Olivier has extensive experience in the practical and legal
problems of the internet, both with counseling and litigation. He has
also developed a particular expertise in the legal aspects of free
culture.</p>
<p>Olivier has presented his work at a number of conferences, particularly
pertaining to free licenses (GNU/GPL, Creative Commons) as well at Wikimania
2008, the annual international conference of the Wikimedia Foundation. Olivier
is also a masters instructor at the University of Paris I La Sorbonne and a
member of the associations INTA and IAEL.</p>
<h1>Directors Emeriti</h1>
<p><em>Directors Emeriti of the Software Freedom Conservancy are former
members of Conservancy's <a href="/about/board/">Board of
Directors</a> who continue to support Conservancy's mission and
occasionally advise Conservancy.</em></p>
<h2>Peter Brown &ndash; Director Emeritus</h2>
<p>Peter Brown has worked in non-profit management and finance for more
than twenty years. He served as the Executive Director of the Free
Software Foundation from 2005 until 2011, and previously as its
Financial Controller and GPL Compliance Lab Manager. Peter has also
been a Director of New Internationalist Publications Cooperative, and
worked in London for BBC Network Radio.</p>
<h2 id="dachary">Lo&iuml;c Dachary &ndash; Director Emeritus</h2>
<p>Lo&iuml;c Dachary has been involved with the Free Software Movement since
1987, when he started distributing GNU tapes to the general public in
France. In 2012, he founded <a href="http://upstream-university.org/">Upstream
University</a>, a nonprofit with the goal of teaching developers how to
contribute easily and efficiently. Dachary volunteers as a developer
for <a href="http://april.org/">April</a>, a grassroots organization
promoting Free Software. He maintains April's OpenStack cluster and organizes
contributions with agile methods. As President
of <a href="http://fsffrance.org/">FSF France</a>, he also provides technical
and legal resources to French Free Software developers. His day job is to use
and contribute to <a href="http://ceph.com/">Ceph</a> within OpenStack.</p>
<h2>Ian Lance Taylor &ndash; Director Emeritus</h2>
<p>Ian Lance Taylor began working with free software in 1990. He wrote
the popular free Taylor UUCP package and has contributed to a wide range
of free software projects, particularly the GNU compiler and binary
utilities. He worked with free software at Cygnus Solutions, Zembu Labs,
Wasabi Systems, and C2 Microsystems, and currently does GNU compiler and
tools development at Google. He received a B.S. in Computer Science from
Yale University.</p>
<h2>Tom Tromey &ndash; Director Emeritus</h2>
<p>Tom Tromey started working on free software in 1991. He was the
primary author of GNU Automake, and has also worked on a wide range of
other free software projects. He is currently a maintainer of GNU gcj and
works at Red Hat. He received a B.S. in mathematics from the California
Institute of Technology.</p>
{% endblock %}

View file

@ -0,0 +1,150 @@
{% 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 &ndash; 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 &ndash; 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 &ndash; Operations Manager</h2>
<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 has a degree in GIS from the University of Tennessee and enjoys
making artistic maps using FOSS.</p>
<h2 id="bkuhn">Bradley M. K&uuml;hn &ndash; Policy Fellow &amp; Hacker-in-Residence</h2>
<p>K&uuml;hn began his work in the software freedom movement
as a volunteer in 1992 &mdash; as an early adopter of Linux-based systems and
contributor to various
<acronym title="Free and Open Source Software">FOSS</acronym> projects,
including Perl. K&uuml;hn worked during the 1990s as a system administrator and software developer
for various companies, and also spent one year teaching high school Advanced Placement Computer
Science. As FSFs Executive Director from 2001&ndash;2005, K&uuml;hn led
<acronym title="Free Software Foundation">FSF</acronym>s
<acronym title="General Public License">GPL</acronym>
enforcement, launched its Associate Member program, and invented the copyleft
network services clause found in the Affero General Public License
(<abbr>AGPL</abbr>).</p>
<p>K&uuml;hn was <acronym title="Software Freedom Conservancy">SFC</acronym>s primary
volunteer from 2006&ndash;2010, and became its first staffer in 2011. K&uuml;hns
work at SFC focuses
on <a href="https://sfconservancy.org/copyleft-compliance/">enforcement of
copyleft and the GPL Agreements</a>, FOSS licensing policy, and non-profit
infrastructural solutions for FOSS. SFC kindly donates some of K&uuml;hn's time as
Co-Editor-in-Chief of <a href="https://next.copyleft.org">the copyleft-next license</a>.</p>
<p>K&uuml;hn holds a summa cum laude B.S. in
Computer Science
from <a href="https://www.loyola.edu/academics/computer-science">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/">K&uuml;hns
Masters thesis</a> discussed methods for dynamic interoperability of FOSS
programming languages. K&uuml;hn received the 2012 Open Source Award, and the 2021
Award for the Advancement of Free Software &mdash; both in recognition for
his lifelong policy work on copyleft licensing and its enforcement.</p>
<p>K&uuml;hn writes about his work
on <a href="https://sfconservancy.org/blog/?author=bkuhn">SFC's blog</a>
and as <a rel="me" href="https://fedi.copyleft.org/@bkuhn">@bkuhn@copyleft.org on
the fediverse</a> (via Mastodon).
</p>
<h2 id="rick">Rick Sanders &ndash; 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 &ndash; 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 OReilly Open Source Award in 2011. She received an honorary doctorate
from KU Leuven in 2023.</p>
<h2 id="pono">Daniel Pono Takamori &ndash; 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 &ndash; 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 %}

View file

@ -0,0 +1,147 @@
{% extends "base_about.html" %}
{% block subtitle %}About - {% endblock %}
{% block submenuselection %}Transparency{% endblock %}
{% block content %}
<h1>Public Filings</h1>
<p>Like all USA 501(c)(3) non-profits, the Conservancy files an annual Form 990 and,
as a non-profit in the State of New York, files an annual CHAR500 with
New York State. Below, Conservancy makes available these filings for
public inspection, in reverse chronological order:</p>
<ul>
<li>Filing Year 2024: Fiscal Year from 2024-03-01 through 2025-02-28
<p><a href="https://www.irs.gov/charities-non-profits/return-due-dates-for-exempt-organizations-annual-return">The
2024 filing deadline for FY 2024-25 is 2025-07-15</a>. The IRS typically
grants an extension to 2026-01-15, and we have requested that extension.</p>
</li>
<li>Filing Year 2023: Fiscal Year from 2023-03-01 through 2024-02-29
<p>FY2023-24 was filed on 2025-01-15.</p>
</li>
<li>Filing Year 2022: Fiscal Year from 2022-03-01 through 2023-02-28<br/>
<ul>
<li><a href="/docs/software-freedom-conservancy_Form-990_fy-2022-23.pdf">2022 Federal Form 990 (for fiscal year 2022-23) (PDF)</a></li>
<li><a href="/docs/software-freedom-conservancy_independent-audit_fy-2022-23.pdf">FY 2022-23 Independent Auditor's Report (for fiscal period ending 2023-02-28) (PDF)</a></li>
<li><a href="">FY 2022-23 New York State CHAR500 (PDF)</a></li>
</li>
<li>Filing Year 2021: Fiscal Year from 2021-03-01 through 2022-02-28<br/>
<ul>
<li><a href="/docs/software-freedom-conservancy_Form-990_fy-2021-22.pdf">2021 Federal Form 990 (for fiscal year 2021-22) (PDF)</a></li>
<li><a href="/docs/software-freedom-conservancy_independent-audit_fy-2021-22.pdf">FY 2021-22 Independent Auditor's Report (for fiscal period ending 2022-02-28) (PDF)</a></li>
<li><a href="/docs/software-freedom-conservancy_CHAR500_fy-2021-22.pdf">FY 2021-22 New York State CHAR500 (PDF)</a></li>
</ul></li>
<li>Filing Year 2020: Fiscal Year from 2020-03-01 through 2021-02-28
<ul>
<li><a href="/docs/software-freedom-conservancy_Form-990_fy-2020.pdf">FY 2020-21 Federal Form 990 (PDF)</a></li>
<li><a href="/docs/software-freedom-conservancy_independent-audit_fy-2020.pdf">FY 2020-21 Independent Auditor's Report (PDF)</a></li>
<li><a href="/docs/software-freedom-conservancy_CHAR500_fy-2020.pdf">FY 2020-21 New York State CHAR500 (PDF)</a></li>
</ul></li>
<li>Filing Year 2019: Fiscal Year from 2019-03-01 through 2020-02-29
<ul>
<li><a href="/docs/software-freedom-conservancy_Form-990_fy-2019.pdf">FY 2019-20 Federal Form 990 (PDF)</a></li>
<li><a href="/docs/software-freedom-conservancy_independent-audit_fy-2019.pdf">FY 2019-20 Independent Auditor's Report (PDF)</a></li>
<li><a href="/docs/software-freedom-conservancy_CHAR500_fy-2019.pdf">FY 2019-20 New York State CHAR500 (PDF)</a></li>
</ul></li>
<li>Filing Year 2018: Fiscal Year from 2018-03-01 through 2019-02-28
<ul>
<li><a href="/docs/software-freedom-conservancy_Form-990_fy-2018-19.pdf">2018 Federal Form 990 (for fiscal year 2018-19) (PDF)</a></li>
<li><a href="/docs/software-freedom-conservancy_independent-audit_fy-2018-19.pdf">FY 2018-19 Independent Auditor's Report (for fiscal period ending 2019-02-28) (PDF)</a></li>
<li><a href="/docs/software-freedom-conservancy_CHAR500_fy-2018-19.pdf">FY 2018-19 New York State CHAR500 (PDF)</a></li>
</ul></li>
<li>Filing Year 2017: Fiscal Year from 2017-03-01 through 2018-02-28
<ul>
<li><a href="/docs/conservancy_Form-990_fy-2017.pdf">FY 2017-18 Federal Form 990 (PDF)</a></li>
<li><a href="/docs/conservancy_independent-audit_fy-2017.pdf">FY 2017-18 Independent Auditor's Report (PDF)</a></li>
<li><a href="/docs/conservancy_CHAR-500_fy-2017.pdf">FY 2017-18 New York State CHAR500 (PDF)</a></li>
</ul>
</li>
<li>Filing Year 2016: Fiscal Year from 2016-03-01 through 2017-02-28
<ul>
<li><a href="/docs/conservancy_Form-990_fy-2016.pdf">FY 2016-17 Federal Form 990 (PDF)</a></li>
<li><a href="/docs/conservancy_CHAR-500_fy-2016.pdf">FY 2016-17 New York State CHAR500 (PDF)</a></li>
<li><a href="/docs/conservancy_independent-audit_fy-2016.pdf">FY 2016-17 Independent Auditor's Report (PDF)</a></li>
</ul>
</li>
<li>Filing Year 2015: Fiscal Year from 2015-03-01 through 2016-02-29
<ul>
<li><a href="/docs/conservancy_Form-990_fy-2015.pdf">FY 2015-16 Federal Form 990 (PDF)</a></li>
<li><a href="/docs/conservancy_CHAR-500_fy-2015.pdf">FY 2015-16 New York State CHAR500 (PDF)</a></li>
<li><a href="/docs/conservancy_independent-audit_fy-2015.pdf">FY 2015-16 Independent Auditor's Report (PDF)</a></li>
</ul>
</li>
<li>Filing Year 2014: Fiscal Year from 2014-03-01 through 2015-02-28
<ul>
<li><a href="/docs/conservancy_Form-990_fy-2014.pdf">FY 2014-15 Federal Form 990 (PDF)</a></li>
<li><a href="/docs/conservancy_independent-audit_fy-2014.pdf">FY 2014-15 Independent Auditor's Report (PDF)</a></li>
</ul>
</li>
<li>Filing Year 2013: Fiscal Year from 2013-03-01 through 2014-02-28
<ul>
<li><a href="/docs/conservancy_annual-report_fy-2013.pdf">FY 2013-14 Annual
Report (PDF)</a> (<a href="/docs/conservancy_annual-report_fy-2013.odp">source in ODP format is also available</a>).</li>
<li><a href="/docs/conservancy_Form-990_fy-2013.pdf">FY 2013-14 Federal Form 990 (PDF)</a></li>
<li><a href="/docs/conservancy_CHAR-500_fy-2013.pdf">FY 2013-14 New York State CHAR500 (PDF)</a></li>
<li><a href="/docs/conservancy_independent-audit_fy-2013.pdf">FY 2013-14 Independent Auditor's Report (PDF)</a></li>
</ul>
</li>
<li>Filing Year 2012: Fiscal Year from 2012-03-01 through 2013-02-28
<ul>
<li><a href="/docs/conservancy_annual-report_fy-2012.pdf">FY 2012-13 Annual
Report (PDF)</a> (<a href="/docs/conservancy_annual-report_fy-2012.odp">source in ODP format is also available</a>).</li>
<li><a href="/docs/conservancy_Form-990_fy-2012.pdf">FY 2012-13 Federal Forms 990 &amp; 990-T (PDF)</a></li>
<li><a href="/docs/conservancy_CHAR-500_fy-2012.pdf">FY 2012-13 New York State CHAR500 (PDF)</a></li>
<li><a href="/docs/conservancy_independent-audit_fy-2012.pdf">FY 2012-13 Independent Auditor's Report (PDF)</a></li>
</ul>
</li>
<li>Filing year 2011: Fiscal Year from 2011-03-01 through 2012-02-29
<ul>
<li><a href="/docs/conservancy_annual-report_fy-2011.pdf">FY 2011-12 Annual
Report (PDF)</a> (<a href="/docs/conservancy_annual-report_fy-2011.odp">source in ODP format is also available</a>).</li>
<li><a href="/docs/conservancy_Form-990_fy-2011.pdf">FY 2011-12 Federal Forms 990 &amp; 990-T (PDF)</a></li>
<li><a href="/docs/conservancy_CHAR-500_fy-2011.pdf">FY 2011-12 New York State CHAR500 (PDF)</a></li>
<li><a href="/docs/conservancy_independent-audit_fy-2011.pdf">FY 2011-12 Independent Auditor's Report (PDF)</a></li>
</ul>
</li>
<li>Filing Year 2010: Fiscal Year from 2010-03-01 through 2011-02-28
<ul>
<li><a href="/docs/conservancy_Form-990_fy-2010.pdf">FY 2010-11 Federal Form 990 (PDF)</a></li>
<li><a href="/docs/conservancy_CHAR-500_fy-2010.pdf">FY 2010-11 New York State CHAR500 (PDF)</a></li>
<li><a href="/docs/conservancy_independent-audit_fy-2010.pdf">FY 2010-11 Independent Auditor's Report (PDF)</a></li>
</ul>
</li>
<li>Filing Year 2009: Fiscal Year from 2009-03-01 through 2010-02-28
<ul>
<li><a href="/docs/conservancy_Form-990_fy-2009.pdf">FY 2009-10 Federal Form 990 (PDF)</a></li>
<li><a href="/docs/conservancy_CHAR-500_fy-2009.pdf">FY 2009-10 New York State CHAR500 (PDF)</a></li>
</ul>
</li>
<li>Filing Year 2008: Fiscal Year from 2008-03-01 through 2009-02-28
<ul>
<li><a href="/docs/conservancy-form-990-fy-2008.pdf">FY 2008-09 Federal Form 990 (PDF)</a></li>
<li><a href="/docs/conservancy-CHAR-500-fy-2008.pdf">FY 2008-09 New York State CHAR500 (PDF)</a></li>
</ul>
</li>
<li>Filing Year 2007: Fiscal Year from 2007-03-01 through 2008-02-29
<ul>
<li><a href="/docs/conservancy_Form-990_fy-2007.pdf">FY 2007-08 Federal Form 990 (PDF)</a></li>
<li><a href="/docs/conservancy_CHAR-500_fy-2007.pdf">FY 2007-08 New York State CHAR500 (PDF)</a></li>
</ul>
</li>
<li>Filing Year 2007: Fiscal Year from 2006-03-01 through 2007-02-28
<ul>
<li><a href="/docs/conservancy_CHAR-500_fy-2006.pdf">FY 2006-27 New York State CHAR500 (PDF)</a></li>
<li><a href="/docs/conservancy_Form-1023.pdf">Form 1023, as filed in
September 2006</a></li>
<li><a href="/docs/conservancy_certificate-of-incorporation.pdf">Certificate
of Incorporation, as granted by New York on 7 April 2006.</a></li>
<li><a href="/docs/conservancy_by-laws.pdf">Conservancy's By-Laws, as filed with the
incorporation documents, and as approved by New York on 7 April 2006.</a></li>
</ul>
</li>
</ul>
{% endblock %}

View file

@ -0,0 +1,29 @@
{% extends "base_conservancy.html" %}
{% load static %}
{% block title %}Software Freedom Awards {% endblock %}
{% block outercontent %}
<div class="mw8 center ph2 ph3">
<section class="pa2 mt4 mb3">
<h1>Software Freedom Awards</h1>
<h2 class="f4 lh-title">Distinguished Service Award in Software Freedom</h2>
<p>The Distinguished Service in Software Freedom Award is given to an individual who has shown commitment over years to supporting and sustaining software freedom. Not just a technical achievement, this award is presented (along with a cash gift) as a recognition of incredible dedication to the people and projects that live within the free software ecosystem.</p>
<h3 class="f4 lh-title">Lance Albertson - FOSSY 2025</h3>
<div class="flex-ns" style="column-gap: 1.5rem; width: 100%">
<div class="w-70-ns mb3" x-data="gallery">
<img x-bind:src="selected_image" src="{% static "img/lance-award.jpg" %}" width="500" >
<div class="flex flex-row flex-wrap">
</div>
</div>
</div>
<p>Free software projects can't meaningfully exist without a place online to live, and can't thrive without tools for their contributors to communicate and collaborate. For over 18 years, Lance Albertson has devoted himself to providing this critically needed infrastructure for hundreds of free and open source projects through his work at [Oregon State University's Open Source Lab (OSUOSL)](https://osuosl.org/). Besides doing technical work to maintain and improve these services, he has selflessly mentored and supported generations of the Lab's students as they develop their own skills. Even prior to OSUOSL, he contributed to free software as a developer and package maintainer for Gentoo Linux.</p>
<p>SFC Community Organizer and Non-Profit Problem Solver Daniel Pono Takamori -- himself an OSUOSL alum -- presented the award on FOSSY's keynote stage, sharing, "Lance Albertson has helped the free and open source community in innumerable ways. Whether it's training and supporting students, helping them work with large open source projects and foundations, or just learning what it's like to work as part of a team in the open. Providing critical support for invaluable free software projects; infrastructure that without which we wouldn't have the robust ecosystem able to power today's modern technology stacks. I'm so proud and honored to be able to give this award to Lance."</p>
</section>
</div>
{% endblock %}

View file

@ -0,0 +1,74 @@
{% extends "base_conservancy.html" %}
{% load cache %}
{% load humanize %}
{% load static %}
{% block category %}WhatWeDo{% endblock %}
{% block head %}
<link href="{% static 'css/forms.css' %}" rel="stylesheet" type="text/css"/>
{% endblock %}
{% block outercontent %}
<div class="content-with-donate-sidebar mw8 center ph2 ph3">
<div id="container">
<div id="mainContent">
{% block content %}
<h1>What We Do</h1>
<p>Software Freedom Conservancy is a nonprofit organization
centered around ethical technology. Our mission is to ensure the
right to repair, improve and reinstall software. We promote and
defend these rights through fostering free and open source
software (FOSS) projects, driving initiatives that actively make
technology more inclusive, and advancing policy strategies that
defend FOSS (such as copyleft).</p>
<p>Our work on <a href="/copyleft-compliance/">copyleft
compliance</a>, including enforcement of the General Public
License (GPL), is world-renowned. We believe fundamentally that
copyleft licenses are the best tool available today to empower
users and consumers to take control of their electronic devices,
liberate themselves from planned obsolesce, and join a free market
where they choose who provides their software.</p>
<p>We also believe that FOSS functions best when built by a
egalitarian community in which hobbyists, volunteers, and
individuals stand on equal footing with companies and large
organizations. Vendor neutrality is simply not enough &mdash; as
that merely makes companies equal to each other and leaves
hobbyists and volunteers out in the cold. To foster FOSS creation
in this manner, we are the <a href="/projects/">non-profit home to
dozens of member projects and initiatives</a> whom we assist to
remain transparent and prioritize the public good in their
development of FOSS.</p>
<p>Furthermore, diversity and inclusion is a critical component to
egalitarian FOSS communities. We acknowledge that FOSS
communities historically have struggled on these fronts and the
myth of &ldquo;pure meritocracy&rdquo; so popular in FOSS circles
willfully ignores the systemic biases in our societies and
cultures. We are thus the proud home of
the <a href="https://outreachy.org/">Outreachy initiative</a> that
offers paid internships in FOSS for contributors who have faced
systemic bias in their efforts to join the FOSS community.</p>
{% endblock %}
</div>
<div id="sidebar" class="{% block submenuselection %}{% endblock %}">
<h2>What We Do</h2>
{% include 'submenus/what_we_do_partial.html' %}
<h2>Vizio Lawsuit</h2>
<ul>
<li class="VizioMain"><a href="/copyleft-compliance/vizio.html">About the Lawsuit</a></li>
<li class="VizioPressRelease"><a href="/copyleft-compliance/vizio-filing-press-release.html">Press Release</a></li>
<li class="VizioComplaint"><a href="/docs/software-freedom-conservancy-v-vizio-complaint-2021-10-19.pdf">Complaint</a></li>
<li class="VizioQandA"><a href="/press/qanda.html">Q&amp;A</a></li>
</ul>
<h2>Resources for Journalists on Vizio</h2>
<ul>
<li class="VizioPressKit"><a href="/docs/software-freedom-conservancy-v-vizio-announce-press-kit.pdf">Press Kit</a></li>
<li class="VizioPhotoAssets"><a href="/docs/software-freedom-conservancy-v-vizio-photo-assets.zip">Photo Assets</a></li>
<li class="Glossary"><a href="/copyleft-compliance/glossary.html">Glossary</a></li>
</ul>
</div>
</div>
</div>
{% endblock %}

View file

@ -0,0 +1,72 @@
{% extends "base_conservancy.html" %}
{% load static %}
{% block title %}OpenWrt One - {% endblock %}
{% block head %}
{{ block.super }}
<script defer src="{% static "js/vendor/alpine-3.14.1.js" %}"></script>
<script>
var gallery = {
images: [
'{% static "img/projects/openwrt/banana_pi_openwrt_one_case_5.jpg" %}',
'{% static "img/projects/openwrt/banana_pi_openwrt_one_case_6.jpg" %}',
'{% static "img/projects/openwrt/banna_pi_openwrt_one_interface-1a.jpg" %}',
'{% static "img/projects/openwrt/banna_pi_openwrt_one_interface-1b.jpg" %}',
'{% static "img/projects/openwrt/openwrt_one_1.jpg" %}',
'{% static "img/projects/openwrt/openwrt_one_3.jpg" %}',
'{% static "img/projects/openwrt/openwrt_one_4.jpg" %}',
],
selected_image: '{% static "img/projects/openwrt/banana_pi_openwrt_one_case_5.jpg" %}',
};
</script>
{% endblock %}
{% block outercontent %}
<div class="mw8 center ph2 ph3">
<section class="pa2 mt4 mb3">
<h2 class="f2 lh-title mt0">OpenWrt One</h2>
<h3 class="f4 lh-title">The First Router Designed Specifically For OpenWrt</h3>
<div class="flex-ns" style="column-gap: 1.5rem; width: 100%">
<div class="w-70-ns mb3" x-data="gallery">
<img x-bind:src="selected_image" src="{% static "img/projects/openwrt/banana_pi_openwrt_one_case_5.jpg" %}">
<div class="flex flex-row flex-wrap">
<template x-for="image in images" :key="image">
<a href="#" x-on:click.prevent="selected_image = image"> <img x-bind:src="image" alt="Thumbnail" class="w4"></a>
<pre x-text="selected_image">foo</pre>
</template>
</div>
</div>
<div class="w-30-ns mb3">
<div class="bg-light-gray pa3">
<div class="mb1">From:</div>
<div class="f2 mb4">$83 USD</div>
<div class="mb2">Official retailers:</div>
<a href="https://www.aliexpress.com/item/1005007795779282.html" class="f5 w-100 white bg-green tc db pv2 ph3 mb2">AliExpress</a>
<a href="https://www.joom.com/en/products/674a99b264619101c5241442" class="f5 w-100 white bg-green tc db pv2 ph3 mb2">Joom</a>
<div class="mb2 mt4">Also available from (unofficial sellers):</div>
<a href="https://www.amazon.com/MiiElAOD-Banana-Pi-OpenWrtOne-Router/dp/B0DK2T9S16" class="f6 w-100 white bg-green tc db pv2 ph3 mb2" style="opacity: 50%">Amazon (MiiElAOD)</a>
<a href="https://www.amazon.com/youyeetoo-Banana-Pi-OpenWrt-One/dp/B0DJS7STYL" class="f6 w-100 white bg-green tc db pv2 ph3 mb2" style="opacity: 50%">Amazon (youyeetoo)</a>
<a href="https://www.amazon.com/WayPonDEV-Banana-OpenWrt-Router-Board/dp/B0DJSDH71P" class="f6 w-100 white bg-green tc db pv2 ph3 mb2" style="opacity: 50%">Amazon (WayPonDEV)</a>
<a href="https://www.aliexpress.com/item/1005007870205805.html" class="f6 w-100 white bg-green tc db pv2 ph3 mb2" style="opacity: 50%">AliExpress (SmartFly)</a>
<a href="https://www.aliexpress.com/item/1005008112786213.html" class="f6 w-100 white bg-green tc db pv2 ph3 mb2" style="opacity: 50%">AliExpress (youyeetoo)</a>
<a href="https://www.aliexpress.com/item/1005007826746106.html" class="f6 w-100 white bg-green tc db pv2 ph3 mb2" style="opacity: 50%">AliExpress (Chip Board House)</a>
<a href="https://www.aliexpress.com/item/1005007827172335.html" class="f6 w-100 white bg-green tc db pv2 ph3 mb2" style="opacity: 50%">AliExpress (Chip Board Flagship)</a>
<a href="https://www.aliexpress.com/item/1005008301213347.html" class="f6 w-100 white bg-green tc db pv2 ph3 mb2" style="opacity: 50%">AliExpress (Nawei)</a>
<a href="https://www.aliexpress.com/item/1005008295761196.html" class="f6 w-100 white bg-green tc db pv2 ph3 mb2" style="opacity: 50%">AliExpress (IceCrab)</a>
<a href="https://www.aliexpress.com/item/1005008339442242.html" class="f6 w-100 white bg-green tc db pv2 ph3 mb2" style="opacity: 50%">AliExpress (Mii)</a>
</div>
</div>
</div>
<div>
<p>This is the first wireless Internet router designed and built with your software freedom and right to repair in mind. The OpenWrt One will never be locked down and is forever unbrickable. This device services <strong>your</strong> needs as its owner and user. Everyone deserves control of their computing. The OpenWrt One takes a great first step toward bringing software rights to your home: you can control your own network with the software of your choice, and ensure your right to change, modify, and repair it as you like.</p>
<p>The OpenWrt One demonstrates what's possible when hardware designers and manufacturers prioritize your software right to repair; OpenWrt One exuberantly follows these requirements of the copyleft licenses of Linux and other GPL'd programs. This device provides the fully copyleft-compliant source code release from the start. Device owners have all the rights as intended on Day 1; device owners are encouraged to take full advantage of these rights to improve and repair the software on their OpenWrt One.</p>
<p>Priced starting at US$83 for a complete OpenWrt One with case, it's ready for a wide variety of use cases. Manufactured in collaboration with Banana Pi, the OpenWrt One uses the MediaTek MT7981B SoC, with MT7976C wifi, 1 GiB DDR4 RAM, 128 MiB SPI NAND + 4 MiB SPI NOR flash, two Ethernet ports (2.5 GbE and 1 GbE), a USB host port, M.2 2042 for NVMe SSD or similar devices, and mikroBUS expansion header. The OpenWrt offers both PoE (Power over Ethernet) via the 2.5 GbE port , or direct power via the USB-C power port with 12V USB-PD. A convenient USB serial interface is built into the other USB-C port: expert users won't miss any boot messages! This hacker-friendly device is unbrickable, providing a switch to separately flash the NOR and NAND portions of the flash memory.</p>
</div>
</section>
</div>
{% endblock %}

View file

@ -0,0 +1,110 @@
{% 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 %}

View file

@ -0,0 +1,40 @@
{% extends "base_compliance.html" %}
{% block subtitle %}Copyleft Compliance Projects - {% endblock %}
{% block submenuselection %}CopyleftCompliance{% endblock %}
{% block content %}
<h1>Court documents and source code of successful SFC-funded lawsuit in Germany against AVM</h1>
<p>We are pleased to be able to share with you the complaint and final court decision in <a href="/news/2025/jan/09/avm-copyleft-lawsuit-resolved-with-install/">the SFC-funded lawsuit against router manufacturer AVM</a>, in both their original German, and in an English version translated by a dispassionate legal document translator, hired by SFC. The German legal system does not make court dockets public by default, so we are limited in what we can publish. We encourage AVM to publish the filings written by its own lawyers, for greater transparency. We understand, for example, that (happily) AVM chose to provide "the scripts used to control ... installation of the library" prior to the final court decision. (Documents in AVM's possession, which are not by default public under the German legal system, would confirm that.) We will post any updates that AVM provides to us here.</p>
<p>Here are the complaint, including relevant exhibits, and final court decision of this case:</p>
<ul>
<li>Complaint (<a href="/static/docs/avm-Complaint_Klageschrift_DE.pdf">German</a>) (<a href="/static/docs/avm-Complaint_Klageschrift_EN.pdf">unofficial English</a>)</li>
<ul>
<li>Exhibit K1 (<a href="/static/docs/avm-Exhibit_Anlage_K1_DE.pdf">German</a>) (<a href="/static/docs/avm-Exhibit_Anlage_K1_EN.pdf">unofficial English</a>)</li>
<li>Exhibit K4 (<a href="/static/docs/avm-Exhibit_Anlage_K4_DE.pdf">German</a>) (<a href="/static/docs/avm-Exhibit_Anlage_K4_EN.pdf">unofficial English</a>)</li>
<li>Exhibit K5 (<a href="/static/docs/avm-Exhibit_Anlage_K5_DE.pdf">German</a>) (<a href="/static/docs/avm-Exhibit_Anlage_K5_EN.pdf">unofficial English</a>)</li>
<li>Exhibit K10 (<a href="/static/docs/avm-Exhibit_Anlage_K10_DE.pdf">German</a>) (<a href="/static/docs/avm-Exhibit_Anlage_K10_EN.pdf">unofficial English</a>)</li>
</ul>
<li>Decision (<a href="/static/docs/avm-Decision_Beschluss_DE.pdf">German</a>) (<a href="/static/docs/avm-Decision_Beschluss_EN.pdf">unofficial English</a>)</li>
</ul>
<p>We are also publishing the source code candidates that AVM provided along the path to the final resolution of this case, which we have put in SFC's <a href="/usethesource/">Use The Source</a> repository of source code candidates, for the public to discuss and benefit from. Note that these differ from the source code candidate(s) on AVM's website, since AVM has chosen not to publish "the scripts used to control ... installation of the library" there, and instead provided them only to Sebastian Steck, the plaintiff in this lawsuit. Steck wants these scripts published, and they are part of the complete source code, meaning that LGPLv2.1 requires them to be redistributable, so we are redistributing them now for everyone to use.</p>
<p>Here are the source code candidates from each stage of Steck's enforcement efforts:</p>
<ul>
<li><a href="/usethesource/candidate/avm-fritzbox-4020-683-round-1-of-n/">Round 1 source candidate</a>: first source candidate AVM provided, in response to source request</li>
<li><a href="/usethesource/candidate/avm-fritzbox-4020-683-round-2-of-n/">Round 2 source candidate</a>: last source candidate AVM provided before lawsuit was filed</li>
<li><a href="/usethesource/candidate/avm-fritzbox-4020-683-round-3-of-n/">Round 3 source candidate</a>: source candidate complying with LGPLv2.1, ending the lawsuit</li>
</ul>
<p>The lawsuit itself focused only on the rights under LGPLv2.1. Sadly, AVM has still not provided Steck or SFC with "the scripts used to control ... installation of the program" for works under GPLv2 in AVM's firmware image, such as Linux, which it still distributes today. We implore AVM to comply with all copyleft agreements they use, and will continue to pursue this enforcement action just as we continue to pursue dozens of other enforcement actions.</p>
<h3>MEDIA CONTACT</h3>
<p>You can reach our media team at <a href="mailto:media@sfconservancy.org">&lt;media@sfconservancy.org&gt;</a></p>
{% endblock %}

View file

@ -0,0 +1,301 @@
{% 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 Linuxs netfilter
subsystem) — to enforce the
GPL. <a href="https://sfconservancy.org/about/staff/#bkuhn">Bradley
M. K&uuml;hn</a>, who is now Conservancys 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 OpenWrts 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 GPLd 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 projects history and its connection to GPL
enforcement can be found
in <a href="https://www.youtube.com/watch?v=r4lCMx-EI1s">K&uuml;hns 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
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 Conservancys 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, Linuxs 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 GPLs 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, thats rarely possible in reality. To ensure
that both current and future hobbyists can practically modify their
Linux-based devices, we must enforce Linuxs 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
backgrounds. The practical benefits of this virtuous cycle are immediately
apparent. With technological experimentation, people are encouraged to try
new things, learn how their devices work, and perhaps create whole new
types of devices and technologies that no one has even dreamed of
before.</p>
<p>IoT firmware should never rely on one vendor — even the vendor of the
hardware itself. This centralized approach is brittle and inevitably leads
to invasions of the publics privacy and loss of control of their
technology. Conservancys GPL enforcement work is part of the puzzle that
ensures users can choose who their devices connect to, and how they
connect. Everyone deserves control over their own computing — from their
laptop to their television to their toaster. When the public can modify (or
help others modify) the software on their devices, they choose the level of
centralized control they are comfortable with. Currently, users with
Linux-based devices usually dont even realize what is possible with
copyleft; Conservancy aims to show them.</p>
<h2 id="the-gpl-compliance-project-for-linux-developers">The GPL Compliance
Project for Linux Developers</h2>
<p>In May 2012, Software Freedom Conservancy
formed <a href="https://sfconservancy.org/copyleft-compliance/#linux">The GPL
Compliance Project for Linux Developers</a> in response to frustration by
upstream Linux developers about the prevalence of noncompliance in the
field, and their desire to stand with Conservancys BusyBox, Git and Samba
projects in demanding widespread GPL compliance. This coalition of Linux
developers works with Conservancy to enforce the GPL for the rights of
Linux users everywhere — particularly consumers who own electronic
devices. We accept violation reports from the general public, and
prioritize enforcement in those classes of devices where we believe that we
can do the most good to help achieve GPL compliance that will increase
software freedom for the maximum number of device users.</p>
<h2 id="the-need-for-litigation">The Need for Litigation</h2>
<p>While we still gain some success, we have found that the landscape of GPL
compliance has changed in recent years. Historically, the true “bad actors”
were rare. We found in the early days that mere education and basic
supply-chain coordination assistance yielded compliance. We sought and
often achieved goodwill in the industry via education-focused
compliance.</p>
<p>Those tactics no longer succeed; the industry has taken advantage of that
goodwill. After the BusyBox lawsuit settled, we observed a slow move toward
intentional non-compliance throughout the embedded electronics
industry. Companies use delay and “hardball” pre-litigation tactics to
drain the limited resources available for enforcement, which we faced (for
example) in <a href="/copyleft-compliance/vmware-lawsuit-links.html">the
VMware violation</a>. While VMware ultimately complied with the GPL, they
did so by reengineering the product and removing Linux from it — and only
after the product was nearing end-of-life.</p>
<p>Conservancy has recently completed an evaluation of the industrys use of
Linux in embedded products. Our findings are disheartening and require
action. Across the entire industry, most major manufacturers almost flaunt
their failure to comply with the GPL. In our private negotiations,
pursuant to
our <a href="/copyleft-compliance/principles.html">Principles
of Community-Oriented GPL Enforcement</a>, GPL violators stall, avoid,
delay and generally refuse to comply with the GPL. Their disdain for the
rights of their customers is often palpable. Their attitude is almost
universal: <q>if you think were really violating the GPL, then go ahead and
sue us. Otherwise, youre our lowest priority</q>.</p>
<h2 id="conservancys-plan-for-action">Conservancys Plan For Action</h2>
<p>Conservancy has a three-pronged plan for action: litigation, persistent
non-litigation enforcement, and alternative firmware development.</p>
<h3 id="litigation">Litigation</h3>
<p>Conservancy has many violation matters that we have pursued during the
last year where we expect compliance is impossible without litigation. We
are poised to select — from among the many violations in the embedded
electronics space — a representative example and take action in USA courts
against a violator who has failed to properly provide source code
sufficient for consumers to rebuild and install Linux, and who still
refuses to remedy that error after substantial friendly negotiation with
Conservancy.</p>
<p>Our goal remains the same as in all matters: we want a source release that
works, and well end any litigation when the company fully complies on its
products and makes a bona fide commitment to future compliance.</p>
<p>Conservancy, after years of analyzing its successes and failures of
previous GPL compliance litigation, has developed — in conjunction with
litigation counsel over the last year — new approaches to litigation
strategy. We believe this will bring to fruition the promise of copyleft:
a license that ensures the rights and software freedoms of hobbyists who
seek full control and modifiability of devices they own. Conservancy plans
to accelerate these plans in late 2020 into early 2021 and we'll keep the
public informed at every stage of the process.</p>
<h3 id="persistent-non-litigation-enforcement">Persistent Non-Litigation Enforcement</h3>
<p>While we will seek damages to cover our reasonable costs of this work, we
do not expect that any recovery in litigation can fully fund the broad base
of work necessary to ensure compliance and the software freedom it brings.
Conservancy is the primary charitable watchdog of GPL compliance for
Linux-based devices. We seek to use litigation as a tool in a broader
course of action to continue our work in this regard. We expect and
welcome that the high profile nature of litigation will inspire more device
owners to report violations to us. We expect well learn about classes of
devices we previously had no idea contained Linux, and well begin our
diligent and unrelenting work to achieve software freedom for the owners of
those devices. We will also build more partnerships across the technology
sector and consumer rights organizations to highlight the benefit of
copyleft to not just hobbyists, but the entire general public.</p>
<h3 id="alternative-firmware-project"><a href="/copyleft-compliance/firmware-liberation.html">Alternative Firmware Project</a></h3>
<p>The success of the OpenWrt project, born from GPL enforcement, has an
important component. While weve long hoped that volunteers, as they did
with OpenWrt and SamyGo, will take up compliant sources obtained in our GPL
enforcement efforts and build alternative firmware projects, history shows
us that the creation of such projects is not guaranteed and exceedingly
rare.</p>
<p>Traditionally, our community has relied exclusively on volunteers to take
up this task, and financial investment only comes after volunteers have put
in the unfunded work to make an <acronym title="minimal viable product">MVP</acronym> alternative firmware. While volunteer
involvement remains essential to the success of alternative firmware
projects, we know from our fiscal sponsorship work that certain aspects of
FOSS projects require an experienced charity to initiate and jump-start
some of the less exciting aspects of FOSS project creation and
development.</p>
<p>Conservancy plans to select a specific class of device. Upon achieving
compliant source releases in that subindustry through GPL enforcement,
Conservancy will <a href="firmware-liberation.html">launch an alternative
firmware project</a> for that class of device.</p>
{% endblock %}

View file

@ -0,0 +1,169 @@
{% extends "base_compliance.html" %}
{% block subtitle %}Copyleft Compliance Projects - {% endblock %}
{% block submenuselection %}LiberateFirmware{% endblock %}
{% block content %}
<h1 id="software-freedom-conservancy-proposal-for-firmware-liberation-project">Firmware Liberation Project</h1>
<p>Conservancy plans to select a class of product in the Linux-based embedded
system space. For this product, Conservancy will launch, or assist, a
project that creates a functioning alternative firmware for those devices.
The promise of GPL enforcement is only realized through actual, practical use
and improvement of the released software for users.</p>
<h2 id="gpl-enforcement-needs-follow-through">GPL Enforcement Needs Follow-Through</h2>
<p>Simply enforcing the GPL is an important first step, and Conservancy
<a href="enforcement-strategy.html">continues our efforts in that
regard</a>. However, we can
replicate <a href="/copyleft-compliance/enforcement-strategy.html#brief-history-of-user-focused-gpl-enforcement">the
success found with OpenWrt</a> <em>only by</em> a substantial
effort <strong>after</strong> enforcement occurs to turn the compliant
source release into a viable alternative firmware for the platform.</p>
<p>Conservancy has seen non-compliant Linux-based firmwares on refrigerators,
baby monitors, virtual assistants, soundbars, doorbells, home security
cameras, police body cameras, cars, AV receivers, and televisions. We
believe that building an alternative firmware for one of these classes of
devices &mdash; or joining our work with an existing alternative firmware project
that is struggling due to lack of sources available &mdash; will lead to
more palpable software freedom for users of these device.</p>
<h2 id="limited-success-of-alternative-hardware">Limited Success of
Alternative Hardware</h2>
<p>Alternative hardware projects remain an essential component of small
device freedom. Conservancy supports and engages with communities that seek
to source and build IoT-style devices from the ground up. Were excited to
see deployable boards that allow Maker efforts to create new devices.</p>
<p>Nevertheless, we remain ever-cognizant that FOSS succeeded on servers,
laptop, desktop, and wireless router computers <em>precisely</em> because
users could buy commodity hardware at any store and install FOSS
alternatives to the vendor-provided software. Throughout the history of
FOSS, most new users who seek to experience software freedom want to do so
with their existing devices first. Many don't even know much about the
issues involved in software liberation <em>until they've already purchased
hardware</em>. Conservancy therefore believes support of alternative
firmwares for such devices is paramount.</p>
<h3 id="demonstrating-the-power-of-software-freedom">Demonstrating the power
of software freedom</h3>
<p>To many, the benefits of software freedom are abstract. For less technical
users, the idea of modifying or even reviewing the software on their
devices is wholly theoretical. For technical users, there is a limited time
available to invest in the devices they use for their everyday
lives. Bringing people together to take collective action for the control
of their own technology is a powerful proposition that has rarely been
demonstrated.</p>
<p>When alternative firmware projects like OpenWrt exist for IoT devices,
non-technical users can replace the software on their devices and benefit
from custom, community-controlled software. Technical users are more likely
to contribute knowing their efforts will be meaningful.</p>
<p>However, decades of corporate involvement in copyleft have demonstrated
that without an organized effort, control over ones own software is purely
theoretical, even when software has a copyleft license, and
sometimes <em>even when</em> compliance with the copyleft license is
acheived. Conservancy recognizes that there is a unique opportunity for
charitable organizations to step in and change the power dynamic of the
tech industry for consumers.</p>
<h2 id="conservancys-plan-for-action">Conservancys Plan For Action</h2>
<p>Conservancy seeks to fund work on liberating firmware for a specific
device. This is accomplished with a two-prong approach: first, we will
leverage increased interest and tendency toward GPL compliance throughout
the embedded industry to more quickly achieve compliant source releases in
a particular subindustry.</p>
<p>Second, depending on what subindustry (i.e., specific class of devices)
seems most responsive to increased enforcement activity and willing to
provide compliant source releases quickly, we will launch, coordinate and
fund an alternative firmware project for that class, or, if appropriate,
merge our efforts with an existing alternative firmware project for that
class of device.</p>
<h2 id="leveraging-on-increased-enforcement">Leveraging on Increased
Enforcement</h2>
<p><a href="enforcement-strategy.html">Conservancy already plans to select a
specific violation and engage in litigation.</a> Based on past experience,
we expect that the press and attention to that ongoing litigation will
yield increased responsiveness by violators throughout the industry. (A
similar outcome occurred after our BusyBox-related litigation in 2006.)
This expected change in behavior will open opportunities to replicate the
OpenWrt approach in another embedded electronic subindustry. Fast action
will be necessary; most IoT products have an 18 month lifecycle, so we seek
to quickly identify the right subindustry, gain compliance there, and move
on to the next phase.</p>
<h3 id="funding-firmware-liberation">Funding Firmware Liberation</h3>
<p>While weve long hoped that volunteers would take up compliant sources
obtained in our GPL enforcement efforts and build alternative firmware
projects as they did with OpenWrt, history shows us that the creation of
such projects is not guaranteed and exceedingly rare.</p>
<p>Traditionally, our community has relied exclusively on volunteers to take
up this task, and financial investment only comes after volunteers have put
in the unfunded work to make a Minimum Viable Product (MVP) liberated
firmware. While volunteer involvement remains essential to the success of
alternative firmware projects, we know from our fiscal sponsorship work
that certain aspects of FOSS projects require an experienced charity to
initiate and jump-start some of the less exciting aspects of FOSS project
creation and development. (In our last fiscal year, Conservancy funded 160
contributors to work on FOSS.)</p>
<p>In the initial phase, Conservancy will select a specific
class of device. Upon achieving compliant source releases in that
subindustry through GPL enforcement, Conservancy will launch an alternative
firmware project for that class of device.</p>
<p>Conservancy will seek to fund the time of project leaders and
infrastructure for the project. The goal is to build a firm base that draws
volunteers to the project. We know that sustaining funding over long
periods for a grassroots hobbyist activity is quite challenging; we seek to
bootstrap and catalyze interest and contribution to the project. Ideally,
Conservancy would run the project with a single full-time staffer for about
a year, and achieve a volunteer base sufficient to reduce funding to one
part-time staffer.</p>
<h3 id="criteria-for-device-selection">Criteria for Device Selection</h3>
<p>The IoT device industry moves quickly and we must be prepared to adapt
based on new information. The first stage in this work will be to carefully
evaluate and select the device on which to focus for this
project. Conservancy will evaluate the following criteria in selecting a
class of devices:</p>
<ul>
<li><p>Do most devices in the subindustry already run a known FOSS system
(such as Android/Linux, BusyBox/Linux or GNU/Linux)?</p></li>
<li><p>In response to our increased enforcement activity, how many existing
GPL-compliant source releases are available from how many different
vendors in this subindustry?</p></li>
<li><p>Is there a known userspace application that runs on Maker-built
hardware that does the task the proprietary userspace software from the
vendor did?</p></li>
<li><p>What is the excitement level among volunteers for this
project?</p></li>
<li><p>What value will hobbyists achieve from replacing the software on their
device? For example, would they be able to avoid surveillance or add
accessibility features?</p></li>
</ul>
<p>Finally, Conservancy will be prepared and willing to recognize temporary
failure and setbacks in a particular subindustry and pivot quickly to
choosing a different class of devices. This project is ambitious, and well
be adroit in our approach to ensure success.</p>
{% endblock %}

View file

@ -0,0 +1,115 @@
{% extends "base_learn.html" %}
{% block subtitle %}Glossary of terms - {% endblock %}
{% block submenuselection %}Glossary{% endblock %}
{% block content %}
<h1 id="glossary">Glossary of terms</h1>
<p>Here are a list of terms you might be unfamiliar with but occur frequently
in our work. If you have any suggestions on things we can add here, please
reach out to info@sfconservancy.org</p>
<h3 id="amicus">amicus curiae</h3>
<p>“Amicus curiae” literally means “friend of the court” and is what you call someone who isnt a party to the case but,because of their strong interest or expertise in the subject matter of the case, has information or argument that the court would find useful in reaching a decision.</p>
<h3 id="auditability">auditability</h3>
<p>Ability to inspect the exact software running on a device. This includes version information, modifications and licensing information. </p>
<h3 id="bash">Bash</h3>
A very common utility for Linux-based systems. Bash was originally released under the General Public License version 2 (GPLv2), but newer versions of Bash are under version 3 (GPLv3). Descendants of both versions are utilized in the industry.
<h3 id="complaint">Complaint (in a lawsuit)</h3>
<p>In the context of a lawsuit, the Complaint is the document that begins the
lawsuit. It states the basic claims of action by the Plaintiff, and their
requests for remedy for the matter.</p>
<h3 id="ccs">Complete Corresponding Source (CCS)</h3>
<p>Informally, <acronym title="Complete Corresponding Source">CCS</acronym> is all of the technical materials and source code required to modify, run, and/or reinstall the software. The <acronym title="General Public License">GPL</acronym> and <acronym title="Lesser General Public License">LGPL</acronym> have a formal definitions for <acronym title="Complete Corresponding Source">CCS</acronym>, which is sometimes called "Corresponding Source."</p>
<h3 id="copyleft">copyleft / copyleft licensing</h3>
<p>A kind of software licensing that leverages the restrictions of copyright, but with the intent to promote sharing (using copyright licensing to freely use and repair software). Software programs are copylefted when they utilize software with a copyleft license. These copyleft licenses are unique in that they seek to put large corporations, small companies, consumers, and hobbyists all on equal footing. The intention is for this to be achieved by granting everyone the exact same rights, permissions, and privileges to modify, improve, and/or include the software in their products.</p>
<h3 id="compliance">copyleft compliance</h3>
<p>When companies utilize copylefted software, they thereby agree to the terms associated with its use. By utilizing copylefted software when designing products, companies agreed to these terms, and so have both contractual and copyright obligations to take certain actions to ensure others have the same rights they did with regard to the software. When rights are respected, the sharing of software under copyleft licensing is a mutually beneficial approach, but many companies are not holding up their side of the bargain. A company is in compliance when it ensures that all of its customers have the same rights, permission, and ability that it has to improve that software and install their improvements onto a device. The best way a company can demonstrate its intent to be in full compliance is by creating a vibrant third-party marketplace for improved software.</p>
<h3 id="end-users">end user</h3>
<p>An end user is someone who winds up using the software. In the case of TVs, an end user is simply the person who uses the TV. (See also third-party beneficiaries of the <acronym title="General Public License">GPL</acronym>)</p>
<h3 id="ethical-technology">ethical technology</h3>
<p>Technology that serves its users, rather than the corporations who profit from it. Ethical technology preserves and promotes the rights of those impacted by it. </p>
<h3 id="foss">FOSS</h3>
<p>Acronym for free and open source software (FOSS). See software freedom.</p>
<h3 id="foss-commons">FOSS commons</h3>
<p>The Digital Library of the Commons defines “commons” as “a general term for shared resources in which each stakeholder has an equal interest”. The FOSS commons refers to a commons for free and open source software (FOSS). See also software freedom.</p>
<h3 id="firmware">firmware</h3>
<p>Software on embedded devices that is written for the purpose of operating the specific hardware of that device.</p>
<h3 id="tar">GNU tar</h3>
<p>A copylefted program for storing large groups of files inside another file. Incredibly common and used ubiquitously. </p>
<h3 id="gpl">General Public License (GPL) </h3>
<p>A copyleft license that ensures end users the freedom to run, study, share, and modify the software. Often referred to as “the GPL.” Also known as GNU General Public License (GPL).</p>
<h3 id="gpl-software">GPLd software</h3>
<p>Software that has been released under the terms of the <acronym title="General Public License">GPL</acronym>.</p>
<h3 id="linux-kernel">Linux kernel</h3>
<p>A kernel is the heart of an operating system, which all computerized devices, like smart TVs, require in order to function. The Linux kernel is one of the most popular operating system kernels.</p>
<h3 id="proprietary-relicensing">proprietary relicensing</h3>
<p><em>Proprietary relicensing</em> is a toxic business model whereby a company
distributes software under a <a href="/copyleft-compliance/glossary.html#copyleft"><em>copyleft</em> licenses</a>, but refuses to
agree to the copyleft license themselves (by collecting rights to issue
proprietary,
non-<a href="/copyleft-compliance/glossary.html#FOSS">FOSS</a> licenses
for the software separately). While the software is technically
available as FOSS, users must worry since the rights-holder usually
captiously (and often incorrectly) interprets the copyleft license and
demands licensing fees for acts that copyleft actually permits. Users
must chose whether to fight the proprietary relicensor in Court, buy a
proprietary license, or cease use of the software. This behavior is
widely consider by FOSS activists as an inappropriate use of copyleft
licensing.</p>
<h3 id="right-to-repair">right-to-repair software</h3>
<p>The ability to repair the software on your device in the same way you can repair the physical aspects of your tools. Software Freedom Conservancy asserts that this right is overlooked and needs additional legal protections (as the <acronym title="Federal Trade Commission">FTC</acronym> has agreed with) to protect consumers. Software Freedom Conservancy focuses specifically on the right to software repair; other great organizations like the <a href="https://www.repair.org/">Repair Association</a> focus on the right to hardware repair. The two rights go hand-in-hand in our modern world where nearly all electronic devices also have small computers inside them.</p>
<h3 id="samygo">SamyGo project</h3>
<p>A software project designed to improve the functionality of the software on Samsung TVs. </p>
<h3 id="software">software (vs hardware)</h3>
<p>An analogy is that ingredients and tools for cooking are hardware and the recipe is software. Both the physical components (computers, phones, TVs) and the ideas (software, programs, algorithms) are necessary.</p>
<h3 id="devices">software-based electronics devices</h3>
<p>Devices like pacemakers have all the necessary hardware to beat your heart, but need the software to do it safely in a way that makes it useful. More and more devices are defined by their software, rather than the hardware (sensors, motors, radio, etc). </p>
<h3 id="software-freedom">software freedom</h3>
<p>The freedom of a user to run, study, (re)distribute, and (re)install (modified) versions of a piece of software. More generally, it is the idea that we are entitled to rights when using software and there should be equal protections for privacy and redistribution. The rights should treat everyone equally—big businesses and individual consumers and users alike.</p>
<h3 id="source-code">source code</h3>
<p>The human readable code written by people that gets turned into binary code that only a computer can understand. </p>
<h3 id="specific-performance">specific performance</h3>
<p>Fulfilling the requirements of a contract in exactly the way the contract specifies. When most contracts are disputed in court, the plaintiff expects to receive money, that they can use to remedy the harm that the other party caused them in not holding up their side of the deal. When a plaintiff seeks specific performance, they want something that money cant replace.</p>
<h3 id="summary-judgment">summary judgment</h3>
<p>In a <em>summary judgment</em> motion, a party in a lawsuit asks the Court
to rule immediately on some (or all) of the claims made
in <a href="#complaint">the complaint</a>. A motion for summary judgment on
just some issues is called &ldquo;partial&rdquo;. To rule
affirmatively for summary judgment, the Judge must determine there are no
issues of <em>fact</em> in dispute on the issue(s) in question. The Judge
rules as a matter of <em>law</em> on the issue. In some state courts &mdash;
including California &mdash; these are called &ldquo;motions for
summary adjudication&rdquo;.</p>
<h3 id="tentative-ruling">tentative ruling</h3>
<p>A <em>tentative ruling</em> is a preliminary but not final decision issued by a Court in advance of oral arguments on a motion</p>
<h3 id="third-party-beneficiary">third-party beneficiaries of the GPL</h3>
<p>People who arent a party to a <acronym title="General Public License">GPL</acronym> agreement, but who would benefit from the contract if the parties to the <acronym title="General Public License">GPL</acronym> do as they promise under the agreement. An example of such a benefit might be the receipt of the source code of the GPLd software. See also General Public License (GPL).</p>
{% endblock %}

View file

@ -0,0 +1,45 @@
{% extends "base_compliance.html" %}
{% block subtitle %}Copyleft Compliance Projects - {% endblock %}
{% block submenuselection %}HelpComply{% endblock %}
{% block content %}
<h1 id="ourwork">Help Defend Software Freedom and Rights</h1>
<p>Folks often ask us how they can help us defend the software freedoms and
rights that copyleft makes possible. There are lots of ways to help and we
believe that the entire public can help.</p>
<h2 id="request">Request Source Code</h2>
<p>All versions of the GPL and LGPL allow companies to make an <em>offer</em>
for Complete, Corresponding Source (CCS) <em>rather than</em> giving you
the CCS outright with the product. Sadly, <strong>many</strong>
companies make an offer with no intention of actually providing that CCS
to you. As consumers, you have a right to that source code. Look in
every manual and &ldquo;Legal Notices&rdquo; section of every product you
buy. If you see an offer, follow the instructions and <strong>request
that CCS</strong>! If you don't get it, or they give you the run-around,
then <a href="#reporting">report the violation to us</a>!</p>
<h2 id="reporting">Reporting GPL Violations To Us</h2>
<p>If you are aware of a license violation or compliance issue regarding any
copyleft license, such as the AGPL, GPL or LGPL,
please <a href="mailto:compliance@sfconservancy.org">contact us by email at
&lt;compliance@sfconservancy.org&gt;</a>.</p>
<!--- FIXME: bkuhn is rewriting this blog post fresh the weekend of --
2020-07-18 so we need not link to ebb.org anymore when we roll out
these changes ... which never happened, still need to do that -->
<p>If you think you've found a GPL violation, we encourage you to
read <a href="http://ebb.org/bkuhn/blog/2009/11/08/gpl-enforcement.html">this
personal blog post by our Policy Fellow, Bradley M. K&uuml;hn</a>, about good
practices in discovering and reporting GPL violations.</p>
<h2 id="sustain">Donate to Sustain This Work</h2>
<p>Finally, Conservancy welcomes <a href="#donate-box"
class="donate-now">donations</a> in support of our copyleft compliance work,
and we encourage you to become a <a href="/sustainer/">an official
Sustainer of Software Freedom Conservancy</a>. </p>
{% endblock %}

View file

Before

Width:  |  Height:  |  Size: 177 KiB

After

Width:  |  Height:  |  Size: 177 KiB

View file

Before

Width:  |  Height:  |  Size: 145 KiB

After

Width:  |  Height:  |  Size: 145 KiB

View file

Before

Width:  |  Height:  |  Size: 171 KiB

After

Width:  |  Height:  |  Size: 171 KiB

View file

Before

Width:  |  Height:  |  Size: 146 KiB

After

Width:  |  Height:  |  Size: 146 KiB

View file

@ -0,0 +1,82 @@
{% extends "base_compliance.html" %}
{% block subtitle %}Copyleft Compliance Projects - {% endblock %}
{% block submenuselection %}ImpactLitigationCopyleft{% endblock %}
{% block content %}
<h1>Impact Litigation for Copyleft</h1>
<p>Pursuant to our <a href="/copyleft-compliance/principles.html">Principles of
Community-Oriented GPL enforcement</a>, Software Freedom Conservancy
(<abbr>SFC</abbr>) engages in
litigation only as an last resort when other methods to adjudicate users'
rights under copyleft fail. However, when necessary, SFC engages in impact
litigation in lawsuits around the world &mdash; both as a Plaintiff
ourselves and by paying the legal fees of other Plaintiffs.</p>
<h2>Current Copyleft Litigation</h2>
Our current impact litigation against <a href="/vizio/">Vizio</a> is ongoing
to establish users' rights under the GPLv2 and LGPLv2.1. Please
do <a href="/vizio/">read more about it</a> and <a href="/sustainer">donate
to support this work!</a>
<h2 id="#past">Past Copyleft Litigation</h2>
These past lawsuits are listed in reverse chronological order.
<h3 id="avm">Sebastian Steck's AVM Lawsuit</h3>
<p>This <acronym title="Software Freedom Conservancy">SFC</acronym>-funded user rights lawsuit was filed by Sebastian Steck in Berlin in 2023 and received a positive final decision from the court in June 2024 with AVM providing "the scripts used to control ... installation of the executable" for the LGPLv2.1 works in the AVM router that Steck purchased. More details are available in our press release and informational page, which provides the source code that was received from AVM allowing users to modify and reinstall copylefted works into the router's flash memory:</p>
<p>
<ul>
<li><a href="/news/2025/jan/09/avm-copyleft-lawsuit-resolved-with-install/">SFC-funded lawsuit gets software repair and reinstall for users of AVM routers</a></li>
<li><a href="/copyleft-compliance/avm.html">Court documents and source code of successful SFC-funded lawsuit in Germany against AVM</a></li>
</ul>
</p>
<h3 id="vmware">Christoph Hellwig's VMware Lawsuit</h3>
<p><acronym title="Software Freedom Conservancy">SFC</acronym> partially funded and assisted in coordination of Christoph
Hellwig's lawsuit against VMware in Germany. That case concluded in 2019.
You can view the relevant announcements and analysis that Conservancy has
published about the case below, starting with the announcement regarding
the conclusion of the case:</p>
<p>
<ul>
<li><a href="/news/2019/apr/02/vmware-no-appeal/">VMware Suit Concludes in Germany</a></li>
<li><a href="http://faif.us/cast/2019/apr/22/0x66/"><cite>Free as in
Freedom</cite> podcast that discusses the conclusion of the
lawsuit</a></li>
<li><a href="/news/2016/aug/09/vmware-appeal/">Announcement of Appeal</a></li>
<li><a href="/news/2015/mar/05/vmware-lawsuit/">Original Press Release</a></li>
<li><a href="/copyleft-compliance/vmware-lawsuit-appeal.html">Funding our Compliance Work</a></li>
<li><a href="/copyleft-compliance/vmware-lawsuit-faq.html">
<abbr title="Frequently Asked Questions">FAQ</abbr> on VMware Lawsuit</a></li>
<li><a href="/copyleft-compliance/vmware-code-similarity.html">VMware's &amp;
Christoph's Code Similarity Analysis</a></li>
</ul>
</p>
<h3 id="best-buy-et-al">Software Freedom Conservancy v. Best Buy, et al</h3>
<p>On 14 December 2009, <acronym title="Software Freedom Conservancy">SFC</acronym> filed a federal copyright
lawsuit against 14 defendants, including Best Buy, Samsung, Westinghouse, and
JVC.
The <a href="https://ia600207.us.archive.org/21/items/gov.uscourts.nysd.355978/gov.uscourts.nysd.355978.docket.html">docket
of that lawsuit is available (on archive.org)</a> and
the <a href="/docs/busybox-complaint-2009-12-14.pdf">original complaint is on
our website</a>.</p>
<p>SFC settled with each defendant at different times, and the
dismissals can be seen in the docket &mdash; the last occurring in
September 2012. Generally speaking, and pursuant to
our <a href="/copyleft-compliance/principles.html">Principles of
Community-Oriented GPL enforcement</a>, Conservancy never settles a lawsuit
unless we believe that full compliance has been achieved (or will be
achieved imminently) with the terms of <em>all</em> copyleft licenses
on <em>all</em> software included in the devices at issue in any lawsuit
that we've filed.</p>
{% endblock %}

View file

@ -46,7 +46,7 @@
<p class="footer">本文版权为自由软件基金会与自由软件管理机构所有,并经由<a href="https://creativecommons.org/licenses/by-sa/4.0"><span lang="en-US">Creative Commons Attribution-ShareAlike 4.0 International License</span></a>许可证发布。<a href="http://www.kaiyuanshe.cn/">开源社法</a>律委员会与自由软件管理机构(<span lang="en-US">Software Freedom Conservancy</span>)合作翻译《面向社区实施 <span lang="en-US">GPL</span> 的原则》的简体中文版。</p>
<p class="footer" lang="en-US">Copyright &copy; 2015, Free Software Foundation, Inc., Software Freedom Conservancy, Inc., Bradley M. Kuhn, Allison Randal, Karen M. Sandler.
<p class="footer" lang="en-US">Copyright &copy; 2015, Free Software Foundation, Inc., Software Freedom Conservancy, Inc., Bradley M. K&uuml;hn, Allison Randal, Karen M. Sandler.
<br/>Licensed under the <a rel="license" href="https://creativecommons.org/licenses/by-sa/4.0">Creative Commons Attribution-ShareAlike 4.0 International License</a>.
<br/>This content has been translated and distributed by <a href="http://www.kaiyuanshe.cn/">Kaiyuanshe</a>.</p>

View file

@ -1,5 +1,5 @@
{% extends "base_compliance.html" %}
{% block subtitle %}Copyleft Compliance Projects - {% endblock %}
{% block subtitle %}Principles of Community-Oriented GPL Enforcement - {% endblock %}
{% block submenuselection %}CopyleftPrinciples{% endblock %}
{% block content %}
[
@ -24,26 +24,6 @@ these situations, many companies comply properly, but some companies
also try to bend or even break the GPL's rules to their perceived
advantage.</p>
<p>The Free Software Foundation (FSF) and Software Freedom Conservancy
(Conservancy) today lead worldwide efforts to ensure compliance with
the GPL family of licenses. The FSF began copyleft enforcement
in the 1980s, and Conservancy has enforced the GPL for many of
its member projects since its founding nearly a decade ago. Last
year, the FSF and Conservancy jointly
published <a href="https://copyleft.org/guide/"><cite>Copyleft and
the GNU General Public License: A Comprehensive Tutorial and
Guide</cite></a>, which includes sections such as
&ldquo;<a href="https://copyleft.org/guide/comprehensive-gpl-guidepa2.html#x17-116000II">A
Practical Guide to GPL Compliance&rdquo;</a> and
&ldquo;<a href="https://copyleft.org/guide/comprehensive-gpl-guidepa3.html#x26-152000III">Case
Studies in GPL Enforcement</a>&rdquo;, which explain the typical
process that both the FSF and Conservancy follow in their GPL
enforcement actions. (Shorter descriptions of these processes appear
in blog posts written
by <a href="https://www.fsf.org/blogs/licensing/compliance-situations">the
FSF</a>
and <a href="https://sfconservancy.org/blog/2012/feb/01/gpl-enforcement/">Conservancy</a>.)</p>
<p>As stalwarts of the community's freedom, we act as a proxy for users when
companies impede the rights to copy, share, modify, and/or
redistribute copylefted software. We require all redistributors to
@ -63,7 +43,8 @@ licenses. We must take care, in copyleft enforcement,
to focus on the ultimate freedom-spreading purpose of copyleft,
and not fall into an overzealous or punitive approach, or into
legitimizing inherently unjust aspects of the copyright regime.
Therefore Conservancy and the FSF do enforcement according to community-oriented principles originally formulated by the FSF in 2001.
Therefore Conservancy does enforcement according to community-oriented
principles originally formulated by other community leaders in 2001.
</p>
<h4>Guiding Principles in Community-Oriented GPL Enforcement</h4>
@ -72,7 +53,7 @@ Therefore Conservancy and the FSF do enforcement according to community-oriented
<li><strong>Our primary goal in GPL enforcement is to bring about GPL
compliance.</strong> Copyleft's overarching policy
goal is to make respect of users' freedoms the norm.
The FSF designed the GNU GPL's text towards this end.
The GNU GPL's text is designed towards this end.
Copyleft enforcement done in this spirit focuses on stopping
incorrect distribution, encouraging corrected distribution, and
addressing damage done to the community and users by the past
@ -151,7 +132,7 @@ those identified in initial reports and those relating to any clauses of the
relevant licenses, are raised and fixed. This is important so that
the dialogue ends with reasonable assurance for both sides that additional
violations are not waiting to be discovered.
(<a href="http://gpl.guide/pristine-example">Good examples of
(<a href="/usethesource/candidate/thinkpenguin-tpe-r1300-round-1-of-1/">Good examples of
compliance</a> already exist to help distributors understand their
obligations.)</li>
@ -191,11 +172,11 @@ communities.
</p>
<div class="doc-footer">
<p>This document is also published on <a href="https://fsf.org/licensing/enforcement-principles">FSF's site</a>.</p>
<p>We revise these principles from time to time based on community feedback. Please <a href="https://lists.sfconservancy.org/mailman/listinfo/principles-discuss">subscribe to our principles-discuss list</a> to follow the discussion and share your thoughts with us.</p>
Please <a href="https://lists.sfconservancy.org/mailman/listinfo/principles-discuss">subscribe to our principles-discuss list</a> to follow the discussion and share your thoughts with us.</p>
</div>
<p>Copyright &copy; 2015, Free Software Foundation, Inc., Software Freedom Conservancy, Inc., Bradley M. Kuhn, Allison Randal, Karen M. Sandler.
<p>Copyright &copy; 2021, Software Freedom Conservancy.<br/>
Copyright &copy; 2015, Free Software Foundation, Inc., Software Freedom Conservancy, Inc., Bradley M. K&uuml;hn, Allison Randal, Karen M. Sandler.
<br/>Licensed under the <a rel="license" href="https://creativecommons.org/licenses/by-sa/4.0">Creative Commons Attribution-ShareAlike 4.0 International License</a>.
<br/>The copyright holders ask that per &sect;3(a)(1)(A)(i) and &sect;3(a)(1)(A)(v) of that license, you ensure these two links (<a href="https://sfconservancy.org/copyleft-compliance/principles.html">[1]</a>,
<a href="https://fsf.org/licensing/enforcement-principles">[2]</a>) are preserved in modified and/or redistributed versions.</p>

View file

@ -153,7 +153,7 @@ GPL 에 대한 전적인 컴플라이언스 및 사용자가 소프트웨어를
<p></em>[ 본 문서는 <a href="https://fsf.org/licensing/enforcement-principles">FSF
사이트</a> 에서도 확인할 수 있습니다. ]</em></p>
<p>Copyright &copy; 2015, Free Software Foundation, Inc., Software Freedom Conservancy, Inc., Bradley M. Kuhn, Allison Randal, Karen M. Sandler.
<p>Copyright &copy; 2015, Free Software Foundation, Inc., Software Freedom Conservancy, Inc., Bradley M. K&uuml;hn, Allison Randal, Karen M. Sandler.
<br/>Licensed under the <a rel="license" href="https://creativecommons.org/licenses/by-sa/4.0">Creative Commons Attribution-ShareAlike 4.0 International License</a>.
<br/>에 의거
허가됨. 해당 라이선스의 제 3 조제(a)항제(1)호제(A)목제(i)단 및

View file

@ -0,0 +1,139 @@
{% extends "base_vizio_og.html" %}
{% block subtitle %}Copyleft Compliance Projects - {% endblock %}
{% block submenuselection %}VizioMain{% endblock %}
{% block content %}
<h1>Software Freedom Conservancy files right-to-repair lawsuit against California TV manufacturer Vizio Inc. for alleged GPL violations</h1>
<h2>Litigation is historic in nature due to its focus on consumer rights, filing as third-party beneficiary</h2>
<p><strong>FOR IMMEDIATE RELEASE</strong></p>
<p>IRVINE, Calif. (Oct. 19, 2021) Software Freedom Conservancy announced today
it has filed a lawsuit against Vizio Inc. for what it calls repeated failures
to fulfill even the basic requirements of the General Public License (GPL).</p>
<p>The lawsuit alleges that Vizios TV products, built on its SmartCast system,
contain software that Vizio unfairly appropriated from a community of
developers who intended consumers to have very specific rights to modify,
improve, share, and reinstall modified versions of the software.</p>
<p>The GPL is a copyleft license that ensures end users the freedom to run,
study, share, and modify the software. Copyleft is a kind of software
licensing that leverages the restrictions of copyright, but with the intent
to promote sharing (using copyright licensing to freely use and repair
software).</p>
<p>Software Freedom Conservancy, a nonprofit organization focused on ethical
technology, is filing the lawsuit as the purchaser of a product which has
copylefted code. This approach makes it the first legal case that focuses on
the rights of individual consumers as third-party beneficiaries of the GPL.
<p>&ldquo;Thats what makes this litigation unique and historic in terms of
defending consumer rights,&rdquo; says Karen M. Sandler, the organizations
executive director.</p>
<p>According to the lawsuit, a consumer of a product such as this has the
right to access the source code so that it can be modified, studied, and
redistributed (under the appropriate license conditions).</p>
<p>&ldquo;We are asking the court to require Vizio to make good on its
obligations under copyleft compliance requirements,&rdquo; says
Sandler. She explains that in past litigation, the plaintiffs have always
been copyright holders of the specific GPL code. In this case, Software
Freedom Conservancy hopes to demonstrate that it's not just the copyright
holders, but also the receivers of the licensed code who are entitled to
rights.</p>
<p>The lawsuit suit seeks no monetary damages, but instead seeks access to
the technical information that the copyleft licenses require Vizio to provide
to all customers who purchase its TVs (specifically, the plaintiff is asking
for the technical information via &ldquo;specific performance&rdquo; rather
than &ldquo;damages&rdquo;).</p>
<p>&ldquo;Software Freedom Conservancy is standing up for customers who are
alienated and exploited by the technology on which they increasingly
rely,&rdquo; says Sandler, adding that the lawsuit also aims to help
educate consumers about their right to repair their devices as well as show
policy makers that there are mechanisms for corporate accountability
already in place that can be leveraged through purchasing power and
collective action.</p>
<p>Copyleft licensing was designed as an ideological alternative to the
classic corporate software model because it: allows people who receive the
software to fix their devices, improve them and control them; entitles people
to curtail surveillance and ads; and helps people continue to use their
devices for a much longer time (instead of being forced to purchase new
ones).</p>
<p>&ldquo;The global supply chain shortages that have affected everything
from cars to consumer electronics underscore one of the reasons why it is
important to be able to repair products we already own,&rdquo; says
Sandler. &ldquo;Even without supply chain challenges, the forced obsolescence
of devices like TVs isnt in the best interest of the consumer or even the
planet. This is another aspect of what we mean by &lsquo;ethical
technology.&rsquo; Throwing away a TV because its software is no longer
supported by its manufacturer is not only wasteful, it has dire environmental
consequences. Consumers should have more control over this, and they would if
companies like Vizio played by the rules.&ldquo;</p>
<p>According to Sandler, the organization first raised the issue of
non-compliance with the GPL with Vizio in August 2018. After a year of
diplomatic attempts to work with the company, it was not only still refusing
to comply, but stopped responding to inquiries altogether as of January 2020.</p>
<p>&ldquo;By July 2021, the TV model that we originally complained was
non-compliant was discontinued,” says Sandler. “When we purchased new models,
we found that despite our efforts they still had no source code included with
the device, nor any offer for source code. People buying these models would
never know that there was anything special about the software in these
devices, or that they had any rights whatsoever connected with the software
on their TVs.&rdquo;</p>
<p>Software Freedom Conservancy analyzed the TVs and concluded that not only
was Vizio not providing the source code and technical information that
copyleft licenses require, Vizio was not even informing its customers about
copylefted software and the rights it gives them as consumers.</p>
<h3>ABOUT SOFTWARE FREEDOM CONSERVANCY</h3>
<p>Software Freedom Conservancy is a nonprofit organization centered around
ethical technology. Our mission is to ensure the right to repair, improve,
and reinstall software. We promote and defend these rights through fostering
free and open source software (FOSS) projects, driving initiatives that
actively make technology more inclusive, and advancing policy strategies that
defend FOSS (such as copyleft). The organization is incorporated in New
York. For more information, go
to <a href="https://sfconservancy.org">sfconservancy.org</a>.</p>
<h3>SUPPLEMENTAL RESOURCES FOR JOURNALISTS</h3>
<ul>
<li><a href="https://sfconservancy.org/docs/software-freedom-conservancy-v-vizio-announce-press-kit.pdf">A
full press kit, with substantial additional information and resources for
journalists covering this story, can be viewed and downloaded here.</li>
<li><a href="/docs/software-freedom-conservancy-v-vizio-complaint-2021-10-19.pdf">The
legal complaint is available</a>.</li>
</ul>
<h3>MEDIA CONTACT</h3>
<p>Hannah Gregory, Media Rep for Good Causes<br/>
<a href="mailto:media@sfconservancy.org">&lt;media@sfconservancy.org&gt;</a></p>
{% endblock %}

View file

@ -0,0 +1,214 @@
{% extends "base_vizio.html" %}
{% load static %}
{% block subtitle %}Copyleft Compliance Projects - {% endblock %}
{% block submenuselection %}VizioMain{% endblock %}
{% block case-info %}
<h1>Software Freedom Conservancy v. Vizio Inc.</h1>
<ul>
<li><span>Location:</span> California</li>
<li><span>Court Type:</span> Orange County Superior Court</li>
<li><span>Status:</span> Ongoing</li>
<li><span>Last Update:</span> July 15, 2025</li>
<li><span>Trial Date:</span> <a href="/news/2025/jul/24/travel-grants-for-vizio-trial-to-foss-community/">January 12, 2026</a></li>
</ul>
{% endblock %}
{% block on-page-css %}
<style>
.case-image {
background: url("{% static 'img/vizio-image.webp' %}") right center no-repeat;
background-size: cover;
}
</style>
{% endblock %}
{% block about-case %}
<p>Modern smart TVs come with software that tracks viewing habits to deliver targeted advertising directly on the TV screen. Software Freedom Conservancy purchased a Vizio TV to develop an open-source version of the operating system that was more customizable and didn't track users to show them ads. This Vizio TV runs on Linux, an operating system that legally requires manufacturers to share the code that lets users customize their devices. When SFC asked Vizio to provide the <a href="glossary.html#ccs">complete, corresponding
source code (&ldquo;CCS&rdquo;)</a>, they refused. SFC sued Vizio in the Orange County Superior Court to receive this essential information.</p>
<p>When Vizio chose to use Linux in its TVs, it accepted Linux's reciprocal contract, which gives purchasers all the rights that Vizio had, to modify and install the software onto the Vizio TV. However, when SFC asked Vizio to hold up its end of the bargain, by giving SFC the source code that SFC was owed so SFC could make the TVs better serve their users, Vizio refused.  After multiple years of back and forth with Vizio, SFC knew the only way Vizio would comply with the license and give SFC the <acronym title="complete, corresponding source code">CCS</acronym> was to sue Vizio.  So in October 2021 SFC sued Vizio in California state court.</p>
<p>The lawsuit is filed as a third-party beneficiary of GPLv2 (the license and contract that Linux and other software uses).  This means that, as a purchaser of a Vizio TV, SFC has rights in the contract that Vizio has with the developers of Linux and other software Vizio uses. SFC seeks to confirm in the courts that purchasers of devices running Linux and other software with reciprocal licenses like GPLv2 have a legal right to ask for, and receive, the source code for those devices, so they can adapt the software to their needs, and make practical use of those adaptations by being able to install those changes back onto the devices they purchased.</p>
<p>We have already seen the huge benefits that GPLv2 provides to device purchasers through projects
like OpenWrt, which allows owners of broadband routers to customize the functionality and features of these devices to better serve them. As an example, users can install ad-blocking software on their router to keep invasive advertising away from their children. This is just one of many ways that companies complying with the GPL is important, and why SFC wants to confirm this third-party right to source code in the courts.</p>
{% endblock %}
{% block news-coverage-link %}
<h2>
<a href="/press/vizio-coverage.html">
View other news coverage about this case
<svg class="arrow-right" aria-hidden="true">
<use href="{% static 'img/font_awesome_subset.svg' %}#arrow-right"></use>
</svg>
</a>
</h2>
{% endblock %}
{% block why-case-matters %}
<p>This case could help establish whether you, as a consumer, have the right to modify and improve the technology you've purchased rather than being forced to use it exactly as manufacturers dictate.</p>
{% endblock %}
{% block legal-docs %}
<details class="toggle-section">
<summary>
<svg class="toggle-icon plus" aria-hidden="true"><use href="{% static 'img/font_awesome_subset.svg' %}#plus"></use></svg>
<svg class="toggle-icon minus" aria-hidden="true"><use href="{% static 'img/font_awesome_subset.svg' %}#minus"></use></svg>
<span class="summary-title">SFCs Original Complaint <span>[Fall 2021]</span></span>
</summary>
<ul>
<li><a href="https://sfconservancy.org/static/docs/software-freedom-conservancy-v-vizio-complaint-2021-10-19.pdf">SFC's Original Complaint</a></li>
</ul>
</details>
<details class="toggle-section">
<summary>
<svg class="toggle-icon plus" aria-hidden="true"><use href="{% static 'img/font_awesome_subset.svg' %}#plus"></use></svg>
<svg class="toggle-icon minus" aria-hidden="true"><use href="{% static 'img/font_awesome_subset.svg' %}#minus"></use></svg>
<span class="summary-title">Removal and Remand (federal to state) <span>[Fall 2021]</span></span>
</summary>
<ul>
<li><a href="https://sfconservancy.org/docs/2023-4-28_VIZIOs_Motion_for_Summary_Judgment_with_Reservation.pdf">Vizio's Motion to Remove (to federal court)</a></li>
<li><a href="https://storage.courtlistener.com/recap/gov.uscourts.cacd.837808/gov.uscourts.cacd.837808.24.0_1.pdf">SFC's Motion to Remand (to state court)</a></li>
<li><a href="https://sfconservancy.org/docs/Vizio_summary_judgement_reply_brief.pdf">Vizio's Opposition of SFC's Motion to Remand (to state court)</a></li>
<li><a href="https://storage.courtlistener.com/recap/gov.uscourts.cacd.837808/gov.uscourts.cacd.837808.32.0.pdf">Transcript of the hearing of the motion to remand</a></li>
<li><a href="https://storage.courtlistener.com/recap/gov.uscourts.cacd.837808/gov.uscourts.cacd.837808.30.0.pdf">Decision by the federal court to remand the case to state court</a></li>
</ul>
</details>
<details class="toggle-section">
<summary>
<svg class="toggle-icon plus" aria-hidden="true"><use href="{% static 'img/font_awesome_subset.svg' %}#plus"></use></svg>
<svg class="toggle-icon minus" aria-hidden="true"><use href="{% static 'img/font_awesome_subset.svg' %}#minus"></use></svg>
<span class="summary-title">Vizio's Motion for Summary Adjudication <span>[Spring 2023]</span></span>
</summary>
<ul>
<li><a href="https://sfconservancy.org/docs/2023-4-28_VIZIOs_Motion_for_Summary_Judgment_with_Reservation.pdf">Vizio's Motion for Summary Judgment</a></li>
<li><a href="https://sfconservancy.org/docs/SFC_response_to_summary_judgement.pdf">SFC's response to Vizio's Motion for Summary Judgment</a></li>
<li><a href="https://sfconservancy.org/docs/Vizio_summary_judgement_reply_brief.pdf">Vizio's reply to SFC's response to Vizio's Motion for Summary Judgment</a></li>
<li><a href="https://sfconservancy.org/docs/Transcript_Full_Vizios_MSJ_HearingDeptC-33.231005.pdf">Full transcript from the hearing</a></li>
<li><a href="https://sfconservancy.org/docs/Order_Denying_Vizio_Motion_for_Summary_Judgement_12-29-23.pdf">Judge's ruling denying Vizio's Motion for Summary Judgment</a></li>
</ul>
</details>
<details class="toggle-section">
<summary>
<svg class="toggle-icon plus" aria-hidden="true"><use href="{% static 'img/font_awesome_subset.svg' %}#plus"></use></svg>
<svg class="toggle-icon minus" aria-hidden="true"><use href="{% static 'img/font_awesome_subset.svg' %}#minus"></use></svg>
<span class="summary-title">SFC's First Amended Complaint <span>[Winter 2024]</span></span></summary>
<ul>
<li><a
href="https://usethesource.sfconservancy.org/tmp_vizio_docs/software-freedom-conservancy-v-vizio-first_amended_complaint-2024-01-10.pdf">SFC's
First Amended Complaint (2024-01-10)</a></li>
</ul>
</details>
<details class="toggle-section">
<summary>
<svg class="toggle-icon plus" aria-hidden="true"><use href="{% static 'img/font_awesome_subset.svg' %}#plus"></use></svg>
<svg class="toggle-icon minus" aria-hidden="true"><use href="{% static 'img/font_awesome_subset.svg' %}#minus"></use></svg>
<span class="summary-title">SFC's Motion for Summary Adjudication <span>[Winter 2024]</span></span></summary>
<ul>
<li><a href="https://sfconservancy.org/docs/software-freedom-conservancy-v-vizio_2023-12-01_SFC-Motion-Summary-Adjudication.pdf">SFC's
Motion for Summary Adjudication</a></li>
<li><a href="https://sfconservancy.org/docs/2024-02-01_SFC-vs-Vizio_Vizio-response-to-first-SFC-MSA.pdf">Vizio's
response to SFC's Motion for Summary Adjudication</a></li>
<li><a href="https://usethesource.sfconservancy.org/tmp_vizio_docs/SFC_motion_summary_adjudication_reply_brief.pdf">SFC's
reply to Vizio's response to SFC's Motion for Summary Adjudication</a></li>
<li><a href="https://sfconservancy.org/docs/2024-03-26_SFC-vs-Vizio_order-partially-granting-SFC-first-MSA.pdf">Judge's
ruling partially granting SFC's Motion for Summary Adjudication</a></li>
</ul>
</details>
<details class="toggle-section">
<summary>
<svg class="toggle-icon plus" aria-hidden="true"><use href="{% static 'img/font_awesome_subset.svg' %}#plus"></use></svg>
<svg class="toggle-icon minus" aria-hidden="true"><use href="{% static 'img/font_awesome_subset.svg' %}#minus"></use></svg>
<span class="summary-title">Mediation attempts and procedural matters in discovery <span>[Spring-Fall 2024]</span></span></summary>
<ul>
<li><a href="https://usethesource.sfconservancy.org/tmp_vizio_docs/350.pdf">Linux Foundation (Vizio witness) attempt to limit SFC's questions</a></li>
<li><a href="https://usethesource.sfconservancy.org/tmp_vizio_docs/397.pdf">Judge's rulings on Motions to Compel</a></li>
<li><a href="https://usethesource.sfconservancy.org/tmp_vizio_docs/411.pdf">Joint Statement re deadline on Motions to Compel and in-person inspection motion</a></li>
<li><a href="https://usethesource.sfconservancy.org/tmp_vizio_docs/412.pdf">Setting trial date per Mandatory Settlement Conference result</a></li>
<li><a href="https://usethesource.sfconservancy.org/tmp_vizio_docs/423.pdf">Joint Statement re deadline on Motions to Compel and in-person inspection motion</a></li>
<li><a href="https://usethesource.sfconservancy.org/tmp_vizio_docs/431.pdf">Trial date unset in order to try private mediation</a></li>
<li><a href="https://usethesource.sfconservancy.org/tmp_vizio_docs/442.pdf">Joint stipulation delaying Status Conference on discovery motions</a></li>
<li><a href="https://usethesource.sfconservancy.org/tmp_vizio_docs/444.pdf">Joint Statement requesting trial rescheduling and bench trial</a></li>
<li><a href="https://usethesource.sfconservancy.org/tmp_vizio_docs/450.pdf">Judge confirming rescheduled Status Conference and hearing dates</a></li>
<li><a href="https://usethesource.sfconservancy.org/tmp_vizio_docs/456.pdf">Status Conference result and new trial date of 2025-09-15</a></li>
</ul>
</details>
<details class="toggle-section">
<summary>
<svg class="toggle-icon plus" aria-hidden="true"><use href="{% static 'img/font_awesome_subset.svg' %}#plus"></use></svg>
<svg class="toggle-icon minus" aria-hidden="true"><use href="{% static 'img/font_awesome_subset.svg' %}#minus"></use></svg>
<span class="summary-title">SFC's Second Motion for Summary Adjudication <span>[Spring 2025]</span></span></summary>
<ul>
<li><a href="https://sfconservancy.org/docs/2025-05-23_SFC-vs-Vizio_second-SFC-Motion-for-Summary-Adjudication.pdf">SFC's Second Motion for Summary Adjudication (2025-05-23)</a></li>
<li><a href="https://usethesource.sfconservancy.org/tmp_vizio_docs/486.pdf">Statement of "undisputed material facts"</a></li>
<li><a href="https://usethesource.sfconservancy.org/tmp_vizio_docs/488.pdf">Request for judicial notice in support of Motion for Summary Adjudication</a></li>
<li><a href="https://usethesource.sfconservancy.org/tmp_vizio_docs/490.pdf">Appendix of exhibits</a></li>
<li><a href="https://sfconservancy.org/docs/2025-08-01_SFC-vs-Vizio_Vizio-response-to-second-SFC-MSA.pdf">Vizio's response to SFC's Second Motion for Summary Adjudication (2025-08-01)</a></li>
<li><a href="https://sfconservancy.org/docs/2025-08-15_SFC-vs-Vizio_SFC-reply-to-Vizio-response-to-second-SFC-MSA.pdf">SFC's reply to Vizio's response to SFC's Second Motion for Summary Adjudication (2025-08-15)</a></li>
</ul>
</details>
<details class="toggle-section">
<summary>
<svg class="toggle-icon plus" aria-hidden="true"><use href="{% static 'img/font_awesome_subset.svg' %}#plus"></use></svg>
<svg class="toggle-icon minus" aria-hidden="true"><use href="{% static 'img/font_awesome_subset.svg' %}#minus"></use></svg>
<span class="summary-title">SFC's motion to set hearing date on its Motion for Summary Adjudication <span>[Spring 2025]</span></span></summary>
<ul>
<li><a href="https://usethesource.sfconservancy.org/tmp_vizio_docs/501.pdf">SFC's motion to set hearing date on its Motion for Summary Adjudication</a></li>
<li><a href="https://usethesource.sfconservancy.org/tmp_vizio_docs/507.pdf">Vizio's qualified non-opposition to set hearing</a></li>
<li><a href="https://usethesource.sfconservancy.org/tmp_vizio_docs/511.pdf">Judge's order on hearing date and new trial date of 2025-09-22</a></li>
</ul>
</details>
<details class="toggle-section">
<summary id="vizio-msa">
<svg class="toggle-icon plus" aria-hidden="true"><use href="{% static 'img/font_awesome_subset.svg' %}#plus"></use></svg>
<svg class="toggle-icon minus" aria-hidden="true"><use href="{% static 'img/font_awesome_subset.svg' %}#minus"></use></svg>
<span class="summary-title">Vizio's Second Motion for Summary Adjudication <span>[Spring 2025]</span></span></summary>
<ul>
<li><a href="https://sfconservancy.org/docs/2025-05-02_SFC-vs-Vizio_second-Vizio-Motion-for-Summary-Adjudication.pdf">Vizio's Second Motion for Summary Adjudication (2025-05-02)</a></li>
<li><a href="https://sfconservancy.org/docs/2025-05-02_SFC-vs-Vizio_second-Vizio-statement-of-undisputed-facts.pdf">Statement of "undisputed material facts"</a></li>
<li><a href="https://sfconservancy.org/docs/2025-07-03_SFC-vs-Vizio_SFC-response-to-second-Vizio-MSA.pdf">SFC's response to Vizio's Second Motion for Summary Adjudication (2025-07-03)</a></li>
<li><a href="https://sfconservancy.org/docs/2025-07-11_SFC-vs-Vizio_Vizio-reply-supporting-Vizio-MSA.pdf">Vizio's reply to SFC's response to Vizio's Second Motion for Summary Adjudication (2025-07-11)</a></li>
<li><a href="/docs/2025-12-23_SFC-vs-Vizio_30-2021-01226723-CU-BC-CJC_Leal-minute-order.pdf">Judge Leal's minute order granting the motion (2025-12-23)</a></li>
</ul>
</details>
<details class="toggle-section">
<summary>
<svg class="toggle-icon plus" aria-hidden="true"><use href="{% static 'img/font_awesome_subset.svg' %}#plus"></use></svg>
<svg class="toggle-icon minus" aria-hidden="true"><use href="{% static 'img/font_awesome_subset.svg' %}#minus"></use></svg>
<span class="summary-title">Judge's order on MSA hearing dates and new trial date of 2025-10-06 <span>[Summer 2025]</span></span></summary>
<ul>
<li><a href="https://sfconservancy.org/docs/2025-08-06_SFC-vs-Vizio_order-continuing-trial-to-20251006.pdf">Judge's order on MSA hearing dates and new trial date of 2025-10-06 (published 2025-08-06)</a></li>
</ul>
</details>
<details class="toggle-section">
<summary>
<svg class="toggle-icon plus" aria-hidden="true"><use href="{% static 'img/font_awesome_subset.svg' %}#plus"></use></svg>
<svg class="toggle-icon minus" aria-hidden="true"><use href="{% static 'img/font_awesome_subset.svg' %}#minus"></use></svg>
<span class="summary-title">Judge's tentative ruling on 2025-12-04 <span>[Winter 2025]</span></span></summary>
<ul>
<li><a href="https://sfconservancy.org/docs/2025-12-04-sleal-tentative-rulings.pdf">Judge's tentative ruling on 2025-12-04</a></li>
</ul>
</details>
{% endblock %}
{% block resources %}
<p>
<a href="/press/qanda.html">FAQ</a> / <a href="/docs/software-freedom-conservancy-v-vizio-photo-assets.zip">Photo Assets</a> / <a href="/copyleft-compliance/glossary.html">Glossary</a>
<br>
<a href="vizio-filing-press-release.html">Press Release</a> / <a href="mailto:media@sfconservancy.org">Media Contact</a> / <a href="/docs/software-freedom-conservancy-v-vizio-announce-press-kit.pdf">Press Kit</a>
</p>
{% endblock %}

View file

@ -1,11 +1,11 @@
{% extends "base_compliance.html" %}
{% block subtitle %}Copyleft Compliance Projects - {% endblock %}
{% block submenuselection %}VMwareCodeSimilarity{% endblock %}
{% block submenuselection %}ImpactLitigationCopyleft{% endblock %}
{% block content %}
<h1 id="contribution-and-similarity-analysis-of-christoph-hellwigs-linux-code-as-found-in-vmware-esxi-5.5">Contribution and Similarity Analysis of Christoph Hellwig's Linux Code as found in VMware ESXi 5.5</h1>
<p>This analysis verifies by reproducible analysis a set of specific contributions that are clearly made by Christoph Hellwig to Linux, and shows how those contributions appear in the VMware ESXi 5.5 product.</p>
<p>This analysis was prepared and written by <a href="/about/staff/#bkuhn">Bradley M. Kuhn</a>.</p>
<p>This analysis was prepared and written by <a href="/about/staff/#bkuhn">Bradley M. K&uuml;hn</a>.</p>
<h1 id="understanding-code-similarity-and-cloning">Understanding Code Similarity and &quot;Cloning&quot;</h1>
<p>Software is often modified in various ways; indeed, Linux developers form a community that encourages and enables modification by many parties. Given this development model, communities often find it valuable to determine when software source code moves from one place to another with only minor modifications. Various scientifically-vetted techniques can be used to identify &quot;clones&quot; -- a portion of code that is substantially similar to pre-existing source code. The specific area of academic research is called &quot;code cloning detection&quot; or &quot;code duplication detection&quot;. The area has been under active research since the mid-1990s <a href="#fn1" class="footnoteRef" id="fnref1"><sup>1</sup></a>. In 2002, Japanese researchers published a tool called CCFinder <a href="#fn2" class="footnoteRef" id="fnref2"><sup>2</sup></a>, which, in its updated incarnation (called CCFinderX), is widely used and referenced by academic researchers in the field <a href="#fn3" class="footnoteRef" id="fnref3"><sup>3</sup></a> and has specifically been used to explore reuses of code in GPL'd software such as Linux <a href="#fn4" class="footnoteRef" id="fnref4"><sup>4</sup></a>.</p>
<p>CCFinderX uses a token-based clone detection method and a suffix-tree matching algorithm; both techniques have been highly vetted and considered in the academic literature. The techniques are considered viable and useful in detecting clones. Many academic papers on the subject have been peer-reviewed and published, and nearly every newly published paper compares its new techniques of clone detection to the seminal results found by CCFinderX. For purposes of our analysis, we have therefore chosen to use CCFinderX. These results can be easily reproduced since CCFinderX is, itself, also Open Source software.</p>
@ -15,7 +15,7 @@
<p>Next, we compared the source code of the Linux Kernel 4.5.2 to the LLVM+Clang system, version 3.8.0. These two projects are each a large program that are not known to actively share code. There may be some very minimal similarity simply due to chance, but something much lower than the 3.68% found between Linux and FreeBSD's kernel.</p>
<p>Indeed, when the same test is run to compare Linux to the LLVM+Clang system, the &quot;ratio of similarity&quot; was 0.075%.</p>
<h1 id="general-comparison-of-linux-kernel-to-vmware-sources">General Comparison of Linux Kernel to VMware sources</h1>
<p>With the baseline established, we now begin relevant comparisons. First, we compare the Linux kernel version 2.6.34 to the sources <a href="https://k.sfconservancy.org/vmkdrivers">released by VMware in their (partial) source release</a>. The &quot;ratio of similarity&quot; between Linux 2.6.34 and VMware's partial source release is 20.72%. There is little question that much of VMware's kernel has come from Linux.</p>
<p>With the baseline established, we now begin relevant comparisons. First, we compare the Linux kernel version 2.6.34 to the sources <a href="https://f.sfconservancy.org/Conservancy/vmkdrivers">released by VMware in their (partial) source release</a>. The &quot;ratio of similarity&quot; between Linux 2.6.34 and VMware's partial source release is 20.72%. There is little question that much of VMware's kernel has come from Linux.</p>
<h1 id="methodology-of-showing-hellwigs-contributions-in-vmware-esxi-5.5-sources">Methodology Of Showing Hellwig's Contributions in VMware ESXi 5.5 Sources</h1>
<p>The following describes a methodology to show Hellwig's contributions to Linux, and how they compare to code found in VMware ESXi 5.5.</p>
<h2 id="extracting-hellwigs-contributions-from-linux-historical-repository">Extracting Hellwig's Contributions From Linux Historical Repository</h2>
@ -31,7 +31,7 @@ $ ./extract-code-added-in-commits.plx --repository=`pwd`/linux-historical --outp
$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git linux-current
$ ./commit-id-list-matching-regex.plx `pwd`/linux-current/.git Hellwig &#39;(Submitted\s+by|original\s+patch|patch\s+(from|by)|originally\s+(from|by)).*&#39; &gt; ./hellwig-current.ids
$ ./extract-code-added-in-commits.plx --progress --repository=`pwd`/linux-current --output-dir=`pwd`/hellwig-through-2.6.34 --fork-limit=14 --blame-opts=-M --blame-opts=-M --blame-opts=-C --blame-opts=-C --central-commit e40152ee1e1c7a63f4777791863215e3faa37a86 &lt; hellwig-current.ids </code></pre>
<p>Note: e40152ee1e1c7a63f4777791863215e3faa37a86 is the 2.6.34 version created by Linus Torvalds <script type="text/javascript">
<p>Note: e40152ee1e1c7a63f4777791863215e3faa37a86 is the 2.6.34 version created by Linus Torvalds <script>
<!--
h='&#108;&#x69;&#110;&#x75;&#120;&#x2d;&#102;&#x6f;&#x75;&#110;&#100;&#x61;&#116;&#x69;&#x6f;&#110;&#46;&#x6f;&#114;&#x67;';a='&#64;';n='&#116;&#x6f;&#114;&#118;&#x61;&#108;&#100;&#x73;';e=n+a+h;
document.write('<a h'+'ref'+'="ma'+'ilto'+':'+e+'">'+e+'<\/'+'a'+'>');

View file

@ -1,6 +1,6 @@
{% extends "base_compliance.html" %}
{% block subtitle %}Copyleft Compliance Projects - {% endblock %}
{% block submenuselection %}VMwareLawsuitAppeal{% endblock %}
{% block submenuselection %}ImpactLitigationCopyleft{% endblock %}
{% block content %}
<h2>The time has come to stand up for the GPL.</h2>
@ -15,8 +15,8 @@
we <a href="/news/2016/aug/09/vmware-appeal/">announced that Christoph
would appeal the lower court's ruling</a>.</p>
Support Conservancy's and Christoph's efforts in this area
by <a href="/supporter/">becoming a Conservancy
supporter</a> or <a href="#donate-box" class="donate-now">donating via
by <a href="/sustainer/">becoming a Conservancy
sustainer</a> or <a href="#donate-box" class="donate-now">donating via
the link on the right</a>.</em></p>
@ -85,7 +85,7 @@ software communities alike.</p>
Please <a href="#donate-box" class="donate-now">donate</a> to our campaign to enforce the GPL. Help Conservancy
increase its number of individual donors, so we have clear evidence to show
bad actors that the GPL matters to the individuals in our community.
After you <a href="#donate-box" class="donate-now">donate</a>, go and tell the world: &ldquo;Play by the rules, @VMware. I defend the #GPL with Christoph &amp; @Conservancy. #DTRTvmware Help at https://sfconservancy.org/supporter/ &rdquo; on your blog or microblog.
After you <a href="#donate-box" class="donate-now">donate</a>, go and tell the world: &ldquo;Play by the rules, @VMware. I defend the #GPL with Christoph &amp; @Conservancy. #DTRTvmware Help at https://sfconservancy.org/sustainer/ &rdquo; on your blog or microblog.
</p>
@ -101,7 +101,7 @@ information</a>.)</p>
to announce that we already reached an anonymous match for this campaign, where every dollar donated
was matched up to $50,000. However, that $100,000 is just an initial step
and there is so much GPL enforcement work to do. So, please
donate now: by becoming <a href="/supporter/">a Conservancy Supporter</a> or
donate now: by becoming <a href="/sustainer/">a Conservancy Sustainer</a> or
via <a href="#donate-box" class="donate-now">donate link on the right</a>.</p>
<h3>Want To Know More?</h3>

View file

@ -1,6 +1,6 @@
{% extends "base_compliance.html" %}
{% block subtitle %}Copyleft Compliance Projects - {% endblock %}
{% block submenuselection %}VMwareLawsuitFAQ{% endblock %}
{% block submenuselection %}ImpactLitigationCopyleft{% endblock %}
{% block content %}
<h1>Frequently Asked Questions about Christoph Hellwig's VMware Lawsuit</h1>
@ -27,51 +27,59 @@
&lt;info@sfconservancy.org&gt;</a>, but understand that we may often need
to answer: <q>We cannot comment on this while litigation is pending</q>.</p>
<dl>
<dt>Who is the Plaintiff in the lawsuit?</dt>
<details>
<summary>Who is the Plaintiff in the lawsuit?</summary>
<dd>Christoph is one of most active developers of the Linux kernel. He has
<p>Christoph is one of most active developers of the Linux kernel. He has
contributed 279,653 lines of code to the latest Linux 3.19 kernel, and
thus ranks 20th among the 1,340 developers involved in that release.
Christoph also ranks 4th among those who have reviewed third-party source
code, and he has tirelessly corrected and commented on other developers'
contributions.</dd>
contributions.</p>
</details>
<dt id="court-documents">Are the court documents released?</dt>
</details>
<dd>Not currently. Court proceedings are not public by default in Germany
(unlike in the USA). Conservancy will continue to update this FAQ with
<details>
<summary id="court-documents">Are the court documents released?</summary>
<p>Not currently. Court proceedings are not public by default in Germanyg (unlike in the USA). Conservancy will continue to update this FAQ with
information that Conservancy knows about the case. We would all also
welcome an agreement with VMware whereby both sides would agree to publish
all Court documents. Unfortunately, VMware has explicitly asked for the
filings not to be published. Accordingly, Conservancy itself has not
even been able to review VMware's statement of defense nor Christoph's
response to that statement of defense.</dd>
response to that statement of defense.</p>
</details>
<dt id="funding">Who's funding this lawsuit?</dt>
<details>
<summary id="funding">Who's funding this lawsuit?</summary>
<dd>Conservancy has engaged in a grant agreement with Christoph Hellwig for
<p>Conservancy has engaged in a grant agreement with Christoph Hellwig for
the purposes of pursuing this specific legal action in Germany.
Conservancy is funding this legal action specifically as part of
Conservancy's program activity in
its <a href="/copyleft-compliance/about.html">GPL Compliance
Project for Linux Developers</a>.</dd>
Project for Linux Developers</a>.</p>
</details>
<dt id="combined-and-derivative-works">Is this the Great Test Case of Combined / Derivative Works?</dt>
<details>
<summary id="combined-and-derivative-works">Is this the Great Test Case of Combined / Derivative Works?</summary>
<dd>This case is specifically regarding a combined work that VMware
<p>This case is specifically regarding a combined work that VMware
allegedly created by combining their own code (&ldquo;vmkernel&rdquo;) with
portions of Linux's code, which was licensed only under GPLv2. As such,
this, to our knowledge, marks the first time an enforcement case is
exclusively focused on this type of legal question relating to GPL.
However, there are so many different ways to make combined and/or
derivative works that are covered by GPL that no single case could possibly
include all such issues. </dd>
include all such issues. </p>
</details>
<dt id="why-lawsuit">Why must you file a lawsuit? Isn't there any other way to convince
VMware to comply with GPL?</dt>
<details>
<summary id="why-lawsuit">Why must you file a lawsuit? Isn't there any other way to convince VMware to comply with GPL?</summary>
<dd><p>Neither Conservancy nor Christoph takes this action lightly nor without
<p>Neither Conservancy nor Christoph takes this action lightly nor without
exhausting every other possible alternative first. This lawsuit is the
outgrowth of years of effort to convince VMware to comply with GPL.</p>
@ -121,22 +129,26 @@
<p>Simply put, Conservancy and Christoph fully exhausted every possible
non-litigation strategy and tactic to convince VMware to do the right thing
before filing this litigation.</p>
</dd>
</p>
</details>
<dt>What are VMware's primary defenses for their alleged copyright
infringement?</dt>
<details>
<summary>What are VMware's primary defenses for their alleged copyright
infringement?</summary>
<dd>With the guidance of counsel, Christoph was able to provide Conservancy
<p>With the guidance of counsel, Christoph was able to provide Conservancy
with a high-level summary of VMware's statement of defense, which we share
in this FAQ. Specifically, VMware's statement of defense primarily focuses
on two issues. First, VMware questions Christoph's copyright interest in
the Linux kernel and his right to bring this action. Second, VMware claims
vmklinux is an &ldquo;interoperability module&rdquo; which communicates
through a stable interface called VMK API.</dd>
through a stable interface called VMK API.</p>
</details>
<dt>How did Christoph respond to VMware's statement of defense?</dt>
<details>
<summary>How did Christoph respond to VMware's statement of defense?</summary>
<dd>Christoph's response discusses his extensive contributions to the Linux
<p>Christoph's response discusses his extensive contributions to the Linux
kernel and disputes the technical merits of VMware's assertions. The
response points out that vmklinux is <strong>not</strong> an
interoperability module, but rather an arbitrary separation of the Linux
@ -152,12 +164,14 @@
VMK API, as used by vmklinux, is not an &ldquo;interface&rdquo; as set
forth in
the <a href="http://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32009L0024&from=EN">EU
Directive 2009/24/EC</a>.</dd>
Directive 2009/24/EC</a>.</p>
</details>
<dt id="tech">Can you explain further how VMware incorporated code from Linux into
their kernel?</dt>
<details>
<summary id="tech">Can you explain further how VMware incorporated code from Linux into
their kernel?</summary>
<dd>
<p>
<p id="diagram">
Conservancy prepared this diagram to show the technical situation as we
understand it. The diagram compares the technical architecture of a full,
@ -173,13 +187,15 @@
(English)</a>, <a href="/copyleft-compliance/linux-vs-vmkernel_de.svg">SVG
(German)</a>, and <a href="/copyleft-compliance/linux-vs-vmkernel_de.png">PNG
(German)</a>.</p>
</dd>
</p>
</p>details>
<dt>Can you explain further in words (rather than a picture) about the central
component in ESXi that the lawsuit alleges violates the GPL?</dt>
<dd>
<details>
<summary>Can you explain further in words (rather than a picture) about the central
component in ESXi that the lawsuit alleges violates the GPL?</summary>
<p>
<p>The GPL violation at issue involves VMware's ESXi product.
Conservancy independently reviewed ESXi 5.5 and its incomplete
Conservancy independently reviewed ESXi and its incomplete
<abbr title="complete, corresponding source">CCS</abbr>
release as part of our GPL enforcement efforts described above.</p>
@ -198,13 +214,15 @@ Code, and for which (at least some) source code is provided.
<p>Conservancy examined the incomplete CCS alongside the
binary &ldquo;vmkernel&rdquo; component. Such examination indicates that functions
in &ldquo;vmkernel&rdquo; do make function calls to Linux's kernel code
in the usual way for a single program written in C.</p></dd>
in the usual way for a single program written in C.</p></p>
</li>details>
<dt>Doesn't VMware's &ldquo;shim layer&rdquo; insulate them from GPL
<details>
<summary>Doesn't VMware's &ldquo;shim layer&rdquo; insulate them from GPL
obligations and allow them to keep certain code in their kernel
proprietary?</dt>
proprietary?</summary>
<dd>
<p>
<p>Many in the media have talked about the possibility that VMware might
use some so-called &ldquo;shim layer&rdquo; between Linux code and
VMware's proprietary code. While, for decades, there has been much talk of
@ -220,20 +238,24 @@ Code, and for which (at least some) source code is provided.
code in their own kernel, and evidence seems to indicate the work as a
whole was developed by modifying Linux code in tandem with
modifications to &ldquo;vmkernel&rdquo; in a tightly coupled manner.</p>
</dd>
<dt id="shim-meaningless">Is Conservancy proposing a &ldquo;shim
layer&rdquo; as a viable solution for GPL compliance?</dt>
</p></details>
<dd>No, in fact, as we say above, Conservancy doesn't think the phrase
<details>
<summary id="shim-meaningless">Is Conservancy proposing a &ldquo;shim
layer&rdquo; as a viable solution for GPL compliance?</summary>
<p>No, in fact, as we say above, Conservancy doesn't think the phrase
&ldquo;shim layer&rdquo; has any meaning, despite regular use of that
phrase in the media. Conservancy generally doubts there is any
technological manipulation that changes the outcome of a
combined/derivative work analysis.</dd>
combined/derivative work analysis.</p>
</details>
<dt id="example">Can you give a <em>specific</em> example, with code, showing how
VMware combined Linux source code with their binary-only components?</dt>
<details>
<summary id="example">Can you give a <em>specific</em> example, with code, showing how
VMware combined Linux source code with their binary-only components?</summary>
<dd><p>There are numerous examples available that show this. The
<p><p>There are numerous examples available that show this. The
details of alleged infringement specifically relating to Hellwig's
contributions to Linux are of course the main matter of the
allegations in the litigation, and Conservancy
@ -243,12 +265,12 @@ Code, and for which (at least some) source code is provided.
good, since the court documents discuss the specifics of alleged
infringement on Hellwig's copyrights.</p>
<p>However, Conservancy examined VMware's ESXi 5.5 product in detail
<p>However, Conservancy examined VMware's ESXi product in detail
even before Hellwig's enforcement action began. Below is one example
among many where VMware's CCS was incomplete per GPLv2&sect;2(c) and
GPLv2&sect;3(a). (One can verify these results by
<a href="#verify">downloading and installing the binary and source
packages for VMware's ESXi 5.5 Update 2</a>.) Note that this
packages for VMware's ESXi 6.0</a>.) Note that this
example below is not necessarily regarding
Hellwig's copyrights; VMware incorporated Linux code copyrighted by
many others as well into their kernel.</p>
@ -257,7 +279,7 @@ Code, and for which (at least some) source code is provided.
<p>Our example begins with examination of the file
called <code>vmkdrivers/src_92/vmklinux_92/vmware/linux_pci.c</code>,
which can be found in the &ldquo;Open Source&rdquo; release for
ESXi 5.5.0 Update 2 (5.5U2). A small excerpt from that file, found in the
ESXi 6.0. A small excerpt from that file, found in the
function <code>LinuxPCIDeviceRemoved()</code>, reads as follows:</p>
<pre>
@ -279,8 +301,8 @@ LinuxPCIDeviceRemoved(vmk_PCIDevice vmkDev)
vmkDevName[0] = 0;
}
[...]
VMKAPI_MODULE_CALL_VOID(pciDevExt->moduleID,
linuxDev->driver->remove,
VMKAPI_MODULE_CALL_VOID(pciDevExt-&gt;moduleID,
linuxDev-&gt;driver-&gt;remove,
linuxDev);
</pre>
@ -288,8 +310,8 @@ VMKAPI_MODULE_CALL_VOID(pciDevExt->moduleID,
<p>The function, <code>vmk_PCIGetDeviceName()</code> must be defined, with an
implementation, for this code above to work, or even compile.
Inside <code>BLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release/device/vmkapi_pci_incompat.h</code>,
found in the <code>vmkdrivers</code> package of ESXi 5.5U2, shows a
Inside <code>BLD/build/HEADERS/vmkapi-current-all-public/generic/release/hardware/vmkapi_pci_incompat.h</code>,
found in the <code>vmkdrivers</code> package of ESXi 6.0, shows a
function header definition for <code>vmk_PCIGetDeviceName()</code>.
However, the source of its implementation is not provided there or
anywhere in the source release.</p>
@ -309,10 +331,10 @@ VMKAPI_MODULE_CALL_VOID(pciDevExt->moduleID,
</p>
<pre>
00000000000327ff R_X86_64_PC32 vmk_PCIGetDeviceName+0xfffffffffffffffc
0000000000035318 R_X86_64_PC32 vmk_PCIGetDeviceName+0xfffffffffffffffc
00000000000387e1 R_X86_64_PC32 vmk_PCIGetDeviceName+0xfffffffffffffffc
000000000003cf40 R_X86_64_PC32 vmk_PCIGetDeviceName+0xfffffffffffffffc
0000000000032db3 R_X86_64_PC32 vmk_PCIGetDeviceName+0xfffffffffffffffc
00000000000333ea R_X86_64_PC32 vmk_PCIGetDeviceName+0xfffffffffffffffc
0000000000036644 R_X86_64_PC32 vmk_PCIGetDeviceName+0xfffffffffffffffc
000000000003986a R_X86_64_PC32 vmk_PCIGetDeviceName+0xfffffffffffffffc
</pre>
<p>The above two properties both suggest that the <code>vmklinux_9</code>
@ -321,9 +343,9 @@ VMKAPI_MODULE_CALL_VOID(pciDevExt->moduleID,
inside <code>vmklinux_9</code> itself.</p>
<p>The definition can however be found in binary-only software provided in
ESXi 5.5U2 &mdash; specifically, inside a file named <code>k.b00</code>,
ESXi 6.0 &mdash; specifically, inside a file named <code>k.b00</code>,
which is located in partition 5 on a disk where ESXi has been installed (or
in the ESXi 5.5U2 installer ISO image). Running <code>file</code>
in the ESXi 6.0 installer ISO image). Running <code>file</code>
after <code>gunzip</code> on this file yields &ldquo;ELF 64-bit LSB shared
object&rdquo;. Meanwhile, <code>file k.b00</code> reports &ldquo;gzip
compressed data, was &lsquo;vmvisor64-vmkernel.stripped&rsquo;&rdquo;.
@ -332,7 +354,7 @@ VMKAPI_MODULE_CALL_VOID(pciDevExt->moduleID,
&ldquo;SYMBOL TABLE&rdquo; section:</p>
<pre>
000041800036a408 g F .text 0000000000000137 vmk_PCIGetDeviceName
000041800033193c g F .text 000000000000012e vmk_PCIGetDeviceName
</pre>
<p>&hellip; which indicated these binary file contains the function body
@ -358,25 +380,27 @@ for <code>vmk_PCIGetDeviceName</code>.</p>
<pre>
struct pci_dev {
[...]
struct pci_driver *driver; /* which driver has allocated this device */
[...]
truct pci_driver {
char *name;
[...]
void (*remove) (struct pci_dev *dev); /* Device removed (NULL if not a hot-plug capable driver) */
[...]
#if defined(__VMKLNX__)
/* 2008: Update from Linux source */
u8 revision; /* PCI revision, low byte of class word */
#endif /* defined(__VMKLNX__) */
[...]
struct pci_driver *driver; /* which driver has allocated this device */
[...]
struct pci_driver {
struct list_head node;
char *name;
[...]
void (*remove) (struct pci_dev *dev); /* Device removed (NULL if not a hot-plug capable driver) */
[...]
};
</pre>
<p>These structures, and based on those from Linux itself
(<a href="http://lxr.free-electrons.com/source/include/linux/pci.h?v=2.6.24">a
similar version of this file can be seen in Linux 2.6.24</a>), and as can
be seen above, have been modified to work with &ldquo;vmkernel&rdquo;</p>
be seen above, have been modified to work with &ldquo;vmkernel&rdquo;.</p>
<p>In <code>LinuxPCIDeviceRemoved()</code>, we saw a macro called with a
variable, <code>linuxDev</code> which was of type <code>struct pci</code>.
@ -387,7 +411,7 @@ truct pci_driver {
<h4><code>VMKAPI_MODULE_CALL_VOID</code> macro calls driver's code</h4>
<p>The
file <code>BLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release/base/vmkapi_module.h</code>
file <code>BLD/build/HEADERS/vmkapi-current-all-public/generic/release/base/vmkapi_module.h</code>
contains the macro definition of <code>VMKAPI_MODULE_CALL_VOID</code>,
which is quoted below (with debug lines removed):
<pre>
@ -402,8 +426,8 @@ do { \
</pre>
<p>When the macro is expanded, it means that <code>(function)(args)</code> is
actually expanded to <code>linuxDev->driver->remove(linuxDev)</code>.
Therefore, we see <code>LinuxPCIDeviceRemoved()</code>, makes directs calls
actually expanded to <code>linuxDev-&gt;driver-&gt;remove(linuxDev)</code>.
Therefore, we see <code>LinuxPCIDeviceRemoved()</code> makes directs calls
to a driver's remove() function, by combining with Linux's <code>struct
pci</code>, and by VMware's introduction of this new calling code.
Conservancy has confirmed many drivers from Linux are incorporated via
@ -423,8 +447,8 @@ static struct pci_driver tg3_driver = {
</pre>
<p>Therefore, when the code in <code>LinuxPCIDeviceRemoved()</code>
calls <code>linuxDev->driver->remove(linuxDev)</code>, the code ultimately
called (in the case where a tg3 card is driven by the kernel)
calls <code>linuxDev-&gt;driver-&gt;remove(linuxDev)</code>, the code
ultimately called (in the case where a tg3 card is driven by the kernel)
is <code>tg3_remove_one()</code>, which is found in <code>tg3.c</code> and
comes directly from Linux.</p>
@ -435,11 +459,11 @@ static struct pci_driver tg3_driver = {
<h4>VMware distribution of binary version of <code>tg3.c</code></h4>
<p>VMware furthermore distributes a modified version of <code>tg.c</code> in
<p>VMware furthermore distributes a modified version of <code>tg3.c</code> in
binary form. This can be found in <code>usr/lib/vmware/vmkmod/tg3</code>,
which is extracted by un-vmtar'ing the file <code>net_tg3.v00</code> (found
on the ESXi 5.5U2 installer ISO image). Conservancy has confirmed that
file is a compiled version of <code>tg3.c</code></p>
on the ESXi 6.0 installer ISO image). Conservancy has confirmed that
file is a compiled version of <code>tg3.c</code>.</p>
<h4>Conclusions</h4>
@ -472,11 +496,14 @@ static struct pci_driver tg3_driver = {
</ul>
<p>The above is but one piece of evidence among many, but hopefully it helps
to explain some of the &ldquo;combined work&rdquo; violations found in
VMware's ESXi product.</p>
VMware's ESXi product. Conservancy did a similar analysis for ESXi 5.0
as well as ESXi 5.5 Update 2 and found nearly identical results.</p>
</p>details>
<dt id="verify">How can I verify Conservancy's technical findings above?</dt>
<details>
<summary id="verify">How can I verify Conservancy's technical findings above?</summary>
<dd><p>The binary and source packages mentioned above are available
<p><p>The binary and source packages mentioned above are available
on VMware's website. These packages contain the
previously-mentioned <code>linux_pci.c</code>,
<code>vmkapi_pci_incompat.h</code>, and <code>k.b00</code> files, as well as
@ -490,20 +517,20 @@ previously-mentioned <code>linux_pci.c</code>,
these steps (no login is required):</p>
<ol>
<li>Visit <a href="https://my.vmware.com/web/vmware/details?downloadGroup=ESXI55U2_OSS&productId=353">https://my.vmware.com/web/vmware/details?downloadGroup=ESXI55U2_OSS&productId=353</a>.</li>
<li>Visit <a href="https://my.vmware.com/web/vmware/details?downloadGroup=ESXI600_OSS&productId=491">https://my.vmware.com/web/vmware/details?downloadGroup=ESXI600_OSS&productId=491</a>.</li>
<li>Click the &ldquo;Download&rdquo; button beside the text that reads
&ldquo;Open Source Code for VMware vSphere ESXi 5.5 Update 2&rdquo;.</li>
&ldquo;Open source software accompanying ESXi&rdquo;.</li>
<li>Confirm that the SHA-1 hash matches the published one
(d121634668a137ec808b63679fd941cef9a59715), found under &ldquo;Read
(35811b981470abe8b606d8a7a97c9795ce570597), found under &ldquo;Read
More&rdquo; on that web page.</li>
<li>Mount (or otherwise open) the
downloaded <code>VMware-ESX-550U2-ODP.iso</code>.</li>
downloaded <code>VMware-ESXI-600-ODP.iso</code>.</li>
<li>Extract <code>vmkdrivers/src_92/vmklinux_92/vmware/linux_pci.c</code>
and <code>BLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release/device/vmkapi_pci_incompat.h</code>
and <code>BLD/build/HEADERS/vmkapi-current-all-public/generic/release/hardware/vmkapi_pci_incompat.h</code>
from <code>vmkdrivers-gpl/vmkdrivers-gpl.tgz</code> with tar and gzip.</li>
<li>Generate <code>vmklinux_9</code> by following the steps
@ -511,11 +538,11 @@ previously-mentioned <code>linux_pci.c</code>,
(Note: <code>vmklinux_9</code> is also available pre-built on a running
ESXi system; <a href="#vmklinux">see below for instructions on how to access it</a>).</li>
<li>You may need the &ldquo;Supporting Toolchain packages for VMware
vSphere ESXi 5.5.0 Update 2&rdquo; file from the above download page to
<li>You may need the &ldquo;Open source software disclosure package for
toolchain&rdquo; file from the above download page to
complete the build &mdash; upon downloading you will find it is named
<code>VMware-TOOLCHAIN-550u2-ODP.iso</code> and has a SHA-1 hash of
f679e81ffb2f92729917bbc64c2d541cf75b5b94.</li>
<code>VMware-TOOLCHAIN-600-ODP.iso</code> and has a SHA-1 hash of
9a68df4cbeb645c25002a02f11b1923f98d3d5b5.</li>
</ol>
@ -527,7 +554,7 @@ previously-mentioned <code>linux_pci.c</code>,
<li>Click the &ldquo;Activate Now&rdquo; link in the follow-up email. Enter
the password used at registration time. Click &ldquo;Continue&rdquo;.</li>
<li>Visit <a href="https://my.vmware.com/web/vmware/evalcenter?p=free-esxi5">https://my.vmware.com/web/vmware/evalcenter?p=free-esxi5</a>.</li>
<li>Visit <a href="https://my.vmware.com/web/vmware/evalcenter?p=free-esxi6">https://my.vmware.com/web/vmware/evalcenter?p=free-esxi6</a>.</li>
<li>Click &ldquo;Register&rdquo; (under the text that reads &ldquo;You have
not registered for this product&rdquo;).</li>
@ -535,16 +562,16 @@ previously-mentioned <code>linux_pci.c</code>,
<li>Enter the number of servers you plan to install on (e.g., 1). Click
&ldquo;Continue&rdquo;.</li>
<li>If the &ldquo;VMware vSphere Hypervisor 5.5 Update 2 &ndash;
<li>If the &ldquo;VMware vSphere Hypervisor 6.0 &ndash;
Binaries&rdquo; section is not expanded, click the plus sign next to it.</li>
<li>Click the &ldquo;Manually Download&rdquo; link that's beside &ldquo;ESXi
5.5 Update 2 ISO image (Includes VMware Tools)&rdquo;.</li>
ISO image (Includes VMware Tools)&rdquo;.</li>
<li>Confirm that the SHA-1 hash matches the published one (9475938b51cafc86c8b17d09f2493cb6b4fae927).</li>
<li>Confirm that the SHA-1 hash matches the published one (a38a9d37ea529329338de049679c1dd1687d3860).</li>
<li>Mount (or open via some other means) the
downloaded <code>VMware-VMvisor-Installer-5.5.0.update02-2068190.x86_64.iso</code>.</li>
downloaded <code>VMware-VMvisor-Installer-6.0.0-2494585.x86_64.iso</code>.</li>
<li>Find the <code>k.b00</code> file in the root directory. Extract it
using <code>zcat k.b00 &gt; vmvisor64-vmkernel</code> (or a similar command).
@ -574,22 +601,26 @@ at <code>bin/vmtar</code> inside
terms in great detail with the assistance of your own legal counsel before
downloading the software and/or engaging in the process that Conservancy
discusses above.</p>
</p>details>
<dt id="similarity-analysis">How do you know Christoph's code is present in
VMware's work?</dt>
<details>
<summary id="similarity-analysis">How do you know Christoph's code is present in
VMware's work?</summary>
<dd>Conservancy
<p>Conservancy
published <a href="/copyleft-compliance/vmware-code-similarity.html">its
comparison analysis between Christoph's code and VMware's code</a>. This
particular analysis uses a two step process: (a) use Linux's public Git logs
to find Christoph's contributions from Christoph, and (b) use a widely
accepted and heavily academically cited tool, CCFinderX, to show that VMware
copied Christoph's code into their product.</dd>
copied Christoph's code into their product.</p>
</details>
<dt id="appeal">I heard that Christoph's case was dismissed. Is that
true?</dt>
<details>
<summary id="appeal">I heard that Christoph's case was dismissed. Is that
true?</summary>
<dd>There was a ruling in July 2016 in the Hamburg District Court, which
<p>There was a ruling in July 2016 in the Hamburg District Court, which
dismissed Christoph's case against VMware. The ruling concerned German
evidence law and the Court did not rule on the merits of the case. The
ruling centered around German evidentary rules related to documenting
@ -602,9 +633,11 @@ copied Christoph's code into their product.</dd>
the Court's ruling</a> which explains why the materials submitted did not
satisfy German evidence rules &mdash; despite publicly available
information in Linux's Git repositories. In addition, the Court chose not
to seek expert testimony.</dd>
<dt id="statements-of-support">Have others issued statements of support about this action?</dt>
<dd>Various individuals and groups have publicly stated their support for
to see</p>details>
<details>k expert testimony.</p>
<summary id="statements-of-support">Have others issued statements of support about this action?</summary>
<p>Various individuals and groups have publicly stated their support for
Conservancy's and Hellwig's actions in this matter. They include:
<ul>
<li><a href="http://www.april.org/en/statement-support-software-freedom-conservancy-and-christoph-hellwig-gpl-enforcement-lawsuit">APRIL</a></li>
@ -618,7 +651,7 @@ copied Christoph's code into their product.</dd>
Samba Team</a></li>
<li><a href="http://sourceforge.net/p/swig/news/2015/03/defending-the-gpl/">The
SWIG Project</a></li>
<li><a href="https://plus.google.com/104877287288155269055/posts/cHgyreA76yY">Dave Airlie, Linux Developer</a></li>
<li><a href="https://web.archive.org/web/20170911061201/https://plus.google.com/104877287288155269055/posts/cHgyreA76yY">Dave Airlie, Linux Developer</a></li>
<li><a href="https://twitter.com/mjg59/status/573530001758294016">Matthew Garrett, Linux Developer</a></li>
<li><a href="/news/2015/mar/05/vmware-lawsuit/#glikely">Grant Likely, Linux Kernel Engineer</a></li>
<li><a href="http://mina86.com/2015/03/11/the-time-has-come-to-stand-up-for-the-gpl/">Michal Nazarewicz, Linux Developer</a></li>
@ -628,15 +661,17 @@ copied Christoph's code into their product.</dd>
Triplett, Linux Developer</a></li>
<li><a href="https://lwn.net/Articles/635617/">Rik van Riel, Linux Developer</a></li>
</ul>
</dd>
</p>
</details>
<dt>I
<details>
<summary>I
see <a href="https://fsf.org/news/conservancy-and-christoph-hellwig-gpl-enforcement-lawsuit">FSF's
statement of support</a>, but why
isn't <a href="https://www.fsf.org/licensing/compliance">FSF enforcing</a> in
this case?</dt>
this case?</summary>
<dd>While FSF are the authors and license steward of the GNU GPL, it's up to
<p>While FSF are the authors and license steward of the GNU GPL, it's up to
the copyright holder to enforce GPL. VMware created an operating system by
combining parts of the kernel named Linux with their own proprietary code,
and then added BusyBox to provide the userspace operating system components.
@ -645,31 +680,34 @@ a <a href="https://www.gnu.org/gnu/linux-and-gnu.html">traditional GNU/Linux
system</a>. FSF has many copyrights of its own, but these are almost
exclusively on various parts of the GNU system, not on the kernel, Linux. As
such, FSF probably does not have copyright interests available to directly
enforce the GPL regarding the primary issue in this case.</dd>
enforce the GPL regarding the primary issue in this case.</p>
</details>
<dt><em>I</em> care about copyleft and the GPL. How can I help?</dt>
<details>
<summary><em>I</em> care about copyleft and the GPL. How can I help?</summary>
<dd>Conservancy needs <a href="#donate-box" class="donate-now">your immediate financial
<p>Conservancy needs <a href="#donate-box" class="donate-now">your immediate financial
support to proceed with this litigation</a>. Litigation costs are
unpredictable, and this lawsuit may take years to resolve. Conservancy is
prepared to fund this case through its conclusion, but we can only do so
with <a href="/supporter/"><em>your</em> support</a>. If you are an
with <a href="/sustainer/"><em>your</em> support</a>. If you are an
individual who supports copyleft and wants to see it defended, please
donate now. And, if you make a public statement of support, please email the
URL
to <a href="mailto:info@sfconservancy.org">&lt;info@sfconservancy.org&gt;</a>,
as we'd like to include representative selection of supportive statements above.</dd>
as we'd like to include representative selection of supportive statements above.</p>
</details>
<dt>Why is the case in Germany?</dt>
<details>
<summary>Why is the case in Germany?</summary>
<dd>Copyright infringement claims can be brought anywhere that distribution
<p>Copyright infringement claims can be brought anywhere that distribution
of the copyrighted works occur. VMware distributes ESXi throughout the
world, but Germany is close to Christoph's home and his lawyer was
available to do the litigation work there. Finally, historically,
Mr. Jaeger's cases in Germany have usually achieved worldwide compliance on
the products at issue in those cases.</dd>
</dl>
the products at issue in those cases.</p>
</details>
{% endblock %}
<!-- LocalWords: Christoph Hellwig VMware vmkernel Linux's GPLv VMware's

View file

@ -0,0 +1,91 @@
{% extends "base_conservancy.html" %}
{% block subtitle %}Donations - {% endblock %}
{% block category %}donate{% endblock %}
{% block content %}
<h1>Donate to Conservancy!</h1>
<p>As a not-for-profit charity, Conservancy relies on support from the
public to continue its work. Please give generously to support
Conservancys work.</p>
<h3><a href="/sustainer/#annual">Become a Sustainer Now!</a></h3>
<p>The best way to donate to Conservancy is
via <a href="/sustainer/#annual">our official Sustainer program</a>, which
earns a t-shirt and other surprise Sustainer-only perks throughout the
year.</p>
<p>But, there are many other great ways to donate to Conservancy as
well, listed below:</p>
<h3 id="paypal">Donate via PayPal (including Visa, Mastercard, AMEX or ACH)</h3>
<p>You can use this method to donate any amount.
You can donate once or set up a recurring monthly donation.</p>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="ZMQKSPUYQLWZW">
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif" style="border:0" name="submit" alt="Donate via PayPal">
</form>
<h3 id="check">Donate by paper check</h3>
<p>Send paper check donations, drawn in US Dollars, to:</p>
<p>Software Freedom Conservancy<br />
137 MONTAGUE ST STE 380<br/>
Brooklyn, NY 11201-3548<br/>
USA
</p>
<h3 id="wire">Donate by wire transfer or bank transfer</h3>
<p>Donations are accepted by wire transfer. Please write to
&lt;<a href="mailto:donate@sfconservancy.org">donate@sfconservancy.org</a>&gt;
to let us know what country youre donating from and what currency youre
sending, and well send back the instructions you need.</p>
<p>Conservancy has accounts to receieve US Dollars and Euros. Well convert
other currencies to US Dollars.</p>
<p>This method is called a &ldquo;wire transfer&rdquo; in the United States,
but its usually compatible with most online banking forms that people
use in Europe and elsewhere to send funds. Please just contact us if you
need to donate in native currency from your country and well discuss
it.</p>
<h3 id="employer-matching">Employer Matching!</h3>
<p>If you work for a company based in the USA, your company may have a
donation matching program for 501(c)(3) charities. Please contact your
HR, Personnel, or charitable giving department and ask! If you need
assistance in talking with your company about this, please don't hesitate
to ask us!</p>
<h3 id="ebay">Donate a portion of your eBay sales</h3>
<p>Through the eBay/PayPal Giving Fund program, you can <a href="http://givingworks.ebay.com/charity-auctions/charity/software-freedom-conservancy-inc/57449/">donate a portion of your eBay sale proceeds to Software Freedom Conservancy</a>. You can also <a href="https://www.paypal.com/webapps/mpp/search-cause?charityId=57449">donate directly through the PayPal Giving Fund</a>.</p>
<h3 id="stock">Donate stock</h3>
<p>Conservancy can accept donation of stocks. Please
contact &lt;<a href="mailto:donate@sfconservancy.org">donate@sfconservancy.org</a>&gt;
for details.</p>
<h3 id="projects">Donate to our projects</h3>
<p>Finally, Conservancy also maintains directed donation programs for
its <a href="/projects/current/">member projects</a>. Using the PayPal
Donate button on that page is the easiest way to donate to a specific
project. You can also designate a donation for a project in the memo line of
a check or wire transfer.</p>
<h3 id="taxes">Donations are usually tax-deductible!</h3>
<p>Software Freedom Conservancy, Inc. is a 501(c)(3) organization
incorporated in New York, and donations made to it are fully tax-deductible to the extent permitted by law.</p>
{% endblock %}

View file

@ -0,0 +1,45 @@
{% extends "base_conservancy.html" %}
{% load static %}
{% block subtitle %}FOSSY - {% endblock %}
{% block submenuselection %}FOSSY{% endblock %}
{% block content %}
<div style="text-align: center;">
<h1><abbr title="Free and Open Source Software Yearly">FOSSY</abbr></h1>
<h2>Free and Open Source Software Yearly conference</h2>
<h3><a href="https://fossy.us">Click here for conference web page</a></h3>
</div>
</br>
<h4>Welcome to the landing page for our conference!</h4>
<p>FOSS is back in Portland, OR - August 1-4th 2024 at the Portland State
University!</p>
<div class="picture right" style="width: 300px;">
<img src="{% static 'img/psu-smsu.jpg' %}" alt="Outside photograph of the Portland State University Smith Memorial Union" style="max-height: 12em;">
<p>CC-BY 3.0 </p>
</div>
<p>Software Freedom Conservancy is hosting the second FOSSY at Portland State University! A community oriented conference this coming summer. FOSSY (Free and Open Source Yearly) is focused on the creation and impact of free and open source software, uplifting contributors of all experience. We are also mindful of having a safe environment for all. In this new time of conferences, we will be focused on COVID safety and making sure all attendees feel safe participating as much as they feel comfortable.</p>
<p>For the second year of FOSSY we are continuing with a focus on community and accessibility for the future of software freedom.. With tracks for community building, development and legal and licensing issues, our conference will provide ample learning and networking opportunities for contributors of all levels of experience. We also plan to involve significant community participation in the content of our tracks.</p>
<p>As we look to the future of conferences, we are excited to focus on using free software to run a conference and will seek to help reduce the amount of proprietary software that is treated as default.</p>
</br>
<h4>Sponsorship</h4>
<p>If you are interested in sponsoring our conference, please check out our <a href="https://sfconservancy.org/docs/Fossy-Prospectus.pdf">sponsorship prospectus</a>. We are looking for sponsors at a variety of levels, including a sponsor to help us create a fully free WiFi stack for all our attendees.</p>
<h4>Call for track proposals</h4>
<p>FOSSY is a community centered conference and in that vein we want to work with our community to design and <a href="https://sfconservancy.org/fossy/community-tracks/">build the conference</a> from the ground up. If technology is not made by all of us, it won't be for all of us. In the spirit of community development we are modelling our talk tracks on the community led DevRooms at FOSDEM and LinuxConfAU's miniconfs.</p>
<p>We are looking for people who are committed to specific issues in free software: community, GIS, right to repair, educational software (for example). If you are interested in organizing and running, please see our submission page <a href="https://sfconservancy.org/fossy/community-tracks/">here</a>.</p>
</br>
</br>
{% endblock %}

View file

@ -0,0 +1,11 @@
{% extends "base_learn.html" %}
{% block subtitle %}Learn - {% endblock %}
{% block submenuselection %}Overview{% endblock %}
{% block content %}
<h1>Learn About Conservancy</h1>
<p>We have plenty of resources on the side menu to learn more about
Conservancy and our work and the recent lawsuit against Vizio.</p>
{% endblock %}

View file

@ -1,5 +1,6 @@
{% extends "base_conservancy.html" %}
{% load humanize %}
{% load static %}
{% block subtitle %}NPOAcct - {% endblock %}
{% block category %}npoacct{% endblock %}
@ -29,8 +30,8 @@
</form>
<!-- PayPal end -->
<p>Or, <a href="/supporter/#annual"><span class="donate-box-highlight">become a Conservancy
Supporter</span></a> (&mdash; a better option if you're donating more
<p>Or, <a href="/sustainer/#annual"><span class="donate-box-highlight">become a Conservancy
Sustainer</span></a> (&mdash; a better option if you're donating more
than $120, since you'll get a t-shirt!).</p>
</td></tr></table>
</div>
@ -38,7 +39,7 @@
<h2>Non-Profit Accounting Software</h2>
<img src="/img/conservancy-accounting-campaign-logo.png" alt="Conservancy accounting campaign logo" style="float:left;" />
<img src="{% static 'img/conservancy-accounting-campaign-logo.png' %}" alt="Conservancy accounting campaign logo" style="float:left;" />
<p>Conservancy has a plan to help all non-profit organizations (NPOs) by
creating an Open Source and Free Software accounting system usable by

View file

@ -0,0 +1,64 @@
{% extends "base_press.html" %}
{% block subtitle %}Press - {% endblock %}
{% block submenuselection %}Press{% endblock %}
{% block content %}
<h1 id="PressInformation">Press Information</h1>
<h2>Vizio Press Release</h2>
<p>To find more information about our current lawsuit against Vizio, click
<a href="/vizio">here</a>.</p>
<p>Here's a collection of documents (collated and individual) for distribution
and reference.</p>
<p><a href="https://shoestring.agency/wp-content/uploads/2021/10/SFC_PressKit_10-19-2021_v1.pdf">Full Press Kit</a></p>
<p><a href="https://sfconservancy.org/copyleft-compliance/vizio-filing-press-release.html">Press Release</a></p>
<p><a href="https://shoestring.agency/wp-content/uploads/2021/10/SFC_FactSheet_GeneralPublic.pdf">Fact Sheet</a></p>
<p><a href="/copyleft-compliance/glossary.html">Glossary</a></p>
<p><a href="/press/qanda.html">Q&A</a></p>
<h2>Spokespeople / Subject Matter Experts</h2>
<p></p>
<h3>Karen M. Sandler</h3>
<p>Executive Director, Software Freedom Conservancy<br>Lecturer-In-Law, Columbia Law School <a href="/about/staff/#karen">(See full bio)</a></p>
<p>Sandler is available for media interviews as an expert on the following subjects:</p>
<ul>
<li>open source, free software and software freedom</li>
<li>ethical technology and consumer rights related to electronic devices</li>
<li>digital autonomy and open technology</li>
<li>medical device transparency (including first-hand experience as a patient with an implanted device)</li>
<li>legal policy related to the above topics</li>
<li>finance and business topics related to open source and technology in general</li>
</ul>
<h3>Bradley M. K&uuml;hn</h3>
<p>Policy Fellow & Hacker-in-Residence, Software Freedom Conservancy Editor-in-Chief, copyleft.org <a href="/about/staff/#bkuhn">(See full bio)</a></p>
<p>K&uuml;hn is available for media interviews as an expert on the following subjects:</p>
<ul>
<li>open source, free software and software freedom</li>
<li>consumer rights related to electronic devices</li>
<li>right to repair, particular with regard to software repair</li>
<li>evolution of Linux-based operating systems, particularly in consumer devices</li>
<li>history of free and open source software licensing</li>
<li>nonprofit transparency and organizational structures for open source</li>
<li>policy approaches for digital autonomy and software freedom</li>
</ul>
<br>
<h4>For direct contact with our media team please contact:</h4>
<ul>
<li>Hannah Gregory</li>
<li>Media Rep for Good Causes</li>
<li><a href="mailto:media@sfconservancy.org">media@sfconservancy.org</a></li>
</ul>
{% endblock %}

View file

@ -0,0 +1,61 @@
{% extends "base_press.html" %}
{% block subtitle %}Press - {% endblock %}
{% block submenuselection %}Press{% endblock %}
{% block content %}
<h1 id="PressInformation">Related News Stories</h1>
<p>Here are some news articles that relate generally to our work. If
you have any suggestions for articles to include here, please send
an <a href="mailto:info@sfconservancy.org">email to
&lt;info@sfconservancy.org&gt;</a>. Also <a href="/press/vizio-coverage.html">check out articles related to
our Vizio Lawsuit</a>. </p>
<h2 id="RHEL">Red Hat Enterprise Linux</h2>
<p>SFC's Policy Fellow, Bradley M. K&uuml;hn, was interviewed on
the <a href="https://podcast.asknoahshow.com/345"><cite>Ask Noah
Show</cite>, episode 345</a> regarding
the <a href="/blog/2023/jun/23/rhel-gpl-analysis/">GPL compliance questions
and concerns regarding Red Hat Enterprise Linux (RHEL)</a>.</p>
<p><a href="https://www.theregister.com/2023/07/10/oracle_ibm_rhel_code/">The
Register - Oracle pours fuel all over Red Hat source code drama</a></p>
<p><a href="https://www.theregister.com/2023/07/12/suse_announces_rhel_fork/">The
Register - SUSE announces its own RHEL-compatible distro&hellip;again</a></p>
<h2 id="GiveUpGitHub">Give Up GitHub</h2>
<p><a href="https://www.theregister.com/2025/08/15/codeberg_beset_by_ai_bots/">The
Register &ndash; Codeberg beset by AI bots that now bypass Anubis tarpit</a></p>
<p><a href="https://www.theregister.com/2022/10/19/github_copilot_copyright/">The Register - How GitHub Copilot could steer Microsoft into a copyright storm</a></p>
<p><a href="https://www.theregister.com/2022/06/30/software_freedom_conservancy_quits_github/">The Register - Open source body quits GitHub, urges you to do the same</a></p>
<p><a href="https://thenextweb.com/news/github-copilot-works-so-well-because-it-steals-open-source-code-strips-credit">The Next Web - GitHub Copilot works so well because it steals open-source code and strips credit</a></p>
<p><a href="https://techcrunch.com/2022/07/01/open-source-developers-urged-to-ditch-github-following-copilot-launch/">TechCrunch - Open source developers urged to ditch GitHub following Copilot launch</a></p>
<h2 id="RightToRepair">Right to Repair</h2>
<p><a href="https://www.vice.com/en/article/88nw54/john-deere-backed-lobbying-groups-host-anti-right-to-repair-conference"><b>Vice</b> - John DeereBacked Lobbying Groups Host Anti-Right to Repair Conference</a></p>
<p><a href="https://www.wired.com/story/ftc-votes-to-enforce-right-to-repair/"><b>Wired</b> - The FTC Votes Unanimously to Enforce Right to Repair</a></p>
<p><a href="https://www.theregister.com/2021/10/19/canon_lawsuit_ink/"><b>The Register</b> - Canon makes 'all-in-one' printers that refuse to scan when out of ink, lawsuit claims</a></p>
<p><a href="https://civileats.com/2022/04/27/right-to-repair-open-source-tractors-john-deere-oggun-farms-profitability-technology/"><b>Civil Eats</b> - In the Battle Over the Right to Repair, Open-Source Tractors Offer an Alternative</a></p>
<h2 id="DEI">Diversity, Equity, and Inclusion</h2>
<p><a href="https://www.theregister.com/2021/03/11/gitlab_main/"><b>The Register</b> - GitLab latest to ditch 'master' as default initial branch name: It's now simply called 'main'</a></p>
<h2 id="copyleft"><a href="https://sfconservancy.org/copyleft-compliance/glossary.html#copyleft">Copyleft</a>
Licensing</h2>
<p><a href="https://www.theregister.com/2022/04/02/court_neo4j_ruling/"><b>The
Register</b> - Court erred in Neo4j source license ruling</a></p>
<h2 id="EthicalTechnology">Ethical Technology</h2>
<p><a href="https://www.wired.com/story/when-open-source-software-comes-with-catches/"><b>Wired</b> - When Open Source Software Comes With a Few Catches</a></p>
<h2 id="Governmental">Governmental News</h2>
<p><a href="https://www.npr.org/2021/07/01/1011907383/new-ftc-chair-lina-khan-wants-to-redefine-monopoly-power-for-the-age-of-big-tech"><b>NPR</b> - New FTC Chair Lina Khan Wants To Redefine Monopoly Power For The Age Of Big Tech</a></p>
<h2 id="Labor">Labor</h2>
<p><a href="https://lwn.net/Articles/688451/"><b>LWN</b> - Employment agreements for free-software developers (Featuring our own Karen Sandler)</a></p>
{% endblock %}

View file

@ -0,0 +1,16 @@
{% extends "base_learn.html" %}
{% block subtitle %}Press Kit - {% endblock %}
{% block submenuselection %}PressKit{% endblock %}
{% block content %}
<h1 id="PressInformation">Press Kit</h1>
<p>Here's a collection of documents (collated and individual) for distribution
and reference.</p>
<p><a href="#fixme">Full Press Kit</a></p>
<p><a href="#fixme">Press Release</a></p>
<p><a href="#fixme">Glossary</a></p>
<p><a href="#fixme">Q&A</a></p>
<p><a href="#fixme">Quotes</a></p>
{% endblock %}

View file

@ -0,0 +1,111 @@
{% extends "base_vizio_og.html" %}
{% block subtitle %}Press - {% endblock %}
{% block submenuselection %}VizioQandA{% endblock %}
{% block content %}
<h1 id="QandA">Vizio Lawsuit Q &amp; A</h1>
<a href="https://shoestring.agency/wp-content/uploads/2021/10/SFC_QA_GeneralPublic.pdf">[
A PDF version of this Q&amp;A is available. ]</a>
<h3 id="">Q: Who is the defendant in this lawsuit?</h3>
<p>The defendant is Vizio, Inc., a U.S.-based TV maker and media company that has been publicly traded on the New York Stock Exchange since March 2021.</p>
<h3 id="">Q: What did Vizio do wrong?</h3>
<p>The lawsuit alleges that Vizios TV products, built on its SmartCast system, contain software that Vizio unfairly appropriated from a community of developers who intended consumers to have very specific rights to modify, improve, share, and reinstall modified versions of the software.</p>
<h3 id="">Q: So, Vizio didnt create SmartCast?</h3>
<p>It appears from extensive research that the core components of SmartCast were not created by Vizio, but rather, are based on various components licensed to the public under free and open-source software (FOSS) licenses. Most notably, many of the programs that are part of the SmartCast system are licensed under the GPL.</p>
<h3 id="">Q: What is copyleft?</h3>
<p>Copyleft is a term used to describe a license that uses the rights granted under copyright—not to restrict usage, but instead to ensure that the software is always shared freely.</p>
<h3 id="">Q: What is FOSS? </h3>
<p>“FOSS” stands for free and open-source software that allows for software freedom. “Software freedom” means the freedom of a user to run, study, (re)distribute, and (re)install (modified) versions of a piece of software. More generally, it is the idea that we are entitled to rights when using software and there should be equal protections for privacy and redistribution. The rights should treat everyone equally: big businesses and individual consumers and users alike.</p>
<h3 id="">Q: I thought FOSS allowed companies to simply take software from the commons and put it into their products whenever they wanted? Isnt that the whole point of FOSS—for companies to get components for their products and lower their cost of production?</h3>
<p>While that is the main advantage that big corporations get from FOSS, it was never the primary impetus behind FOSS. Particularly through special licensing terms like the GPL, this licensing approach creates an egalitarian community of users, developers, and consumers. When functioning correctly, each individual and organization that participates in FOSS stands on equal footing with everyone else. Licenses like the GPL have rules to assure everyone's rights in that ecosystem are treated with equal respect and reverence. This is why compliance with these rules is important and we must stand up against companies who refuse to comply. </p>
<h3 id="">Q: But, I'm not a software developer. Why should I care at all that Vizio wont let me modify and reinstall GPLd components in its SmartCast system?</h3>
<p>Right-to-repair software is essential for everyone, even if you don't know how to make the repairs yourself. Once upon a time, we had lots of local vendors that could repair and fix TVs when they broke. Thats because TVs were once analog hardware devices that could be taken apart and understood merely by inspection from someone with the sufficient knowledge. TVs today are simply a little computer attached to a large display. As such, the most important part that needs repairs is usually when the software malfunctions, has bugs, or otherwise needs upgrades and changes. The GPL was specifically designed to assure such fixes could be done, and that consumers (or agents those consumers hire on the open market) can make such repairs and changes. </p>
<h3 id="">Q: Alright, that makes sense, but Im happy with Vizios SmartCast right now. What difference does it make to me if Vizio wont give me the rights under the GPL?</h3>
<p>Time and time again, companies stop supporting the software build for the device long before the computer inside the device fails. In other words, these devices are built for planned premature obsolescence. </p>
<p>By refusing to comply with the pro-consumer terms of the GPL, Vizio has the power to disable your TV at any time it wants, over your internet connection, without your knowledge or consent. If Vizio complied with the GPL, all would not be lost in this scenario: volunteers and third-party entities could take GPLd software as a basis for a replacement for SmartCast. Without these rights, consumers are essentially forced to purchase new devices when they could be repaired.</p>
<h3 id="">Q: Creation of a replacement for SmartCast seems far-fetched to me. After all, most of the software in SmartCast is not actually GPLd, only a portion of the components and programs are GPLd. How will Vizio's compliance with the GPL actually lead to an alternative firmware?</h3>
<p>Years ago, people said the very same thing about wireless routers, which had only partially GPL'd firmwares. However, thanks to actions to enforce the GPL in the wireless router market, the OpenWrt project was born! That project is now the premiere replacement software for wireless routers from almost every major manufacturer on the market. There is now healthy competition and even occasional cooperation between a hobbyist and community-led firmware project and the wireless router manufacturers. We believe the same can happen for TVs, but the first step is assuring the entire TV market complies with the GPL.</p>
<h3 id="">Q: What indications do you have that compliance with the GPL will be a catalyst for alternative firmwares?</h3>
<p>Beyond the OpenWrt example, Software Freedom Conservancy sued 14 defendants for GPL violations in 2009, including Samsung for its 2009-era TV models. Thanks to the source release that was achieved through the settlement of that lawsuit, a community-led SamyGo project was created for that era of TVs. (source)</p>
<h3 id="">Q: Who is the plaintiff in the lawsuit?</h3>
<p>Software Freedom Conservancy is the plaintiff in this case. The organization is filing as a third-party beneficiary, as the purchaser of a product which has copylefted code on it. A consumer of a product such as this has the right to access the source code so that it can be modified, studied, and redistributed (under the appropriate license conditions).</p>
<h3 id="">Q: What makes this different than other GPL compliance lawsuits?</h3>
<p>In the past, the plaintiffs have always been copyright holders of the specific GPL code. In this case Software Freedom Conservancy is demonstrating that it's not just the copyright holders, but also the receivers of the licensed code which are entitled to their rights.</p>
<h3 id="">Q: What type of case is this? How does it compare to previous litigation by Software Freedom Conservancy regarding the GPL?</h3>
<p>Previously, Software Freedom Conservancy filed as a copyright holder in federal court, or coordinated or funded litigation by other copyright holders in copyright cases in the U.S. and Germany. This is an example of how, historically, GPL litigation has focused on the rights of the developers. However, the rights assured by the GPL are actually not intended primarily for the original developers, but rather for people who purchase products that contain GPLd software. That is what makes this litigation unique and historic in terms of defending consumer rights. It is the first case that focuses on the rights of individual consumers as third-party beneficiaries of the GPL.</p>
<h3 id="">Q: Why are you filing a third-party beneficiary claim instead of a copyright claim?</h3>
<p>For too long, GPL enforcement has focused only on the rights of developers, who are often not the ones impacted by the technology in question. Some of those same developers even have lucrative jobs working for the various companies that violate the GPL. The GPL was designed to put the rights of hobbyists, individual developers, consumers, small companies, and nonprofit organizations on equal footing with big companies. With the advent of more contributions to GPLd software coming from for-profit multinational corporations and fewer from individuals, the rights of these other parties are often given second-class billing. The third-party beneficiary claim prioritizes the consumers, who are the users and the most important beneficiaries of the rights under GPL.</p>
<h3 id="">Q: Are you saying the rights of developers under the GPL are not important?</h3>
<p>Not at all! Most would agree that individual developers care deeply about the software freedom of users. They are the artists who create the amazing FOSS on which all of us rely. However, as Francis Ford Coppola once said (paraphrased), “to understand who holds the power in any culture, look not to the artists but who employs the artists”—a quote which suits this situation well. Large multinational corporations have co-opted FOSS for their own bottom lines. While many developers privately cheer Software Freedom Conservancys efforts and donate money to this cause, they fear the power that their employers exert and have asked Software Freedom Conservancy to fight for the software freedom of users.</p>
<h3 id="">Q: Why is this important for the future of developers?</h3>
<p>The next generation of developers comes from the users of today. The golden age of FOSS that the industry now enjoys came to fruition from the counterculture created by FOSS activists in the 1990s and early 2000s. During this time, Linux and other GPLd software was considered just a curiosity (and was even accused of being anti-American). Nevertheless, the rights assured by the GPL ultimately led to a new generation of software developers learning how to build Linux and all the amazingly useful FOSS around it. To recruit a diverse group of the next generation of enthusiastic developers, we must ensure that the rights under GPL are available to every single individual, consumer and hobbyist around the globe. That is what this lawsuit is about.</p>
<h3 id="">Q: If the goal is to fight for all consumer rights, why not file this lawsuit as a class action? </h3>
<p>Forcing consumers to fight for their individual rights is one way that for-profit corporations exert their inappropriate power. Actions such as this lawsuit seek to disrupt this power dynamic by asserting that all consumers of copylefted code deserve the opportunity to know, access and modify the code on their devices. However, expecting all consumers to have to personally participate in that process not only puts an undue burden on them, it simply is not realistic. It is not how change happens. Furthermore, pursuant to “The Principles of Community Oriented GPL Enforcement,” the lawsuit does not prioritize financial remedy over compliance. This lawsuit seeks the most important remedy for the public good: release of the Complete, Corresponding Source (CCS) for all GPLd components on Vizio TVs. Once that is achieved, the benefit is immediately available to not only all who purchased a Vizio TV, but also to the entire FOSS community. </p>
<h3 id="">Q: What are “The Principles of Community Oriented GPL Enforcement”?</h3>
<p>In 2016, Software Freedom Conservancy published “The Principles of Community-Oriented GPL Enforcement” in response to those who might use copyleft licenses for their own financial gain. Software Freedom Conservancy is part of a long tradition of using copyleft enforcement as intended: to further the rights and freedoms of individual users, consumers, and developers. Pursuant to those principles, Software Freedom Conservancy never prioritizes financial gain over assuring the rights guaranteed by the GPL are upheld.</p>
<h3 id="">Q: Are the court documents released? Does that relate to why the litigation was brought in the U.S.?</h3>
<p>Software Freedom Conservancy brought this litigation within the U.S. specifically because litigation in this country is completely public. Historically, Germany has been one of the most popular venues for GPL litigation but it also has a huge downside: the German legal system keeps all details of the cases private and there is little transparency. </p>
<h3 id="">Q: Who is funding this lawsuit? </h3>
<p>This lawsuit is central to the mission of Software Freedom Conservancy. The organization has received grants from Amateur Radio Digital Communications (ARDC) to support GPL compliance work. As a nonprofit, charitable donations are also an important source of funding to carry out the work. This combined financial support allowed for this litigation to begin. However, continued donor support will be vital since litigation like this is quite expensive.</p>
<h3 id="">Q: How can someone make a donation?</h3>
<p>To make a tax-deductible donation to Software Freedom Conservancy, go to sfconservancy.org/donate. The best way to support this important work is to join as an official Sustainer. Details on that program are available at sfconservancy.org/sustainer. </p>
<h3 id="">Q: Why must you file a lawsuit? Isnt there any other way to convince Vizio to comply with the GPL? </h3>
<p>Vizio has a long history of violating copyleft. The company has also stopped replying to inquiries from Software Freedom Conservancy. Vizio has been benefiting from the use of an abundance of existing copylefted software, but completely ignores the responsibilities that come with using the licenses. Furthermore, Vizio has already been subject to a large class-action suit that alleged that Vizio was misusing its customers private information (Vizio settled that class action for $17 million).</p>
<h3 id="">Q: What GPL code has been discovered in Vizios SmartCast? </h3>
<p>SmartCast is a Linux-based operating system. That means that not only do multiple copies of the Linux kernel appear in the firmware, other GPL'd and LGPL'd programs were found, including U-Boot, bash, gawk, tar, glibc, and ffmpeg.</p>
<h3 id="">Q: How can I verify Software Freedom Conservancys technical findings above? </h3>
<p>Object code can be found on the TVs and source code/binaries on the filesystem. There are multiple models in which we can confirm the findings. Go to sfconservancy.org/vizio for details.</p>
<a href="https://shoestring.agency/wp-content/uploads/2021/10/SFC_QA_GeneralPublic.pdf">[
A PDF version of this Q&amp;A is available. ]</a>
{% endblock %}

View file

@ -0,0 +1,36 @@
{% extends "base_press.html" %}
{% block subtitle %}Press - {% endblock %}
{% block submenuselection %}VizioPress{% endblock %}
{% block content %}
<h1 id="VizioPress">Vizio Lawsuit Press Coverage</h1>
<p>Here are articles in the press that covered <a href="/copyleft-compliance/vizio.html">our Vizio lawsuit</a>.</p>
<h2 id="Filing">Coverage of the <a href="/">Decision to Remand by the Federal Court</a></h2>
<ul class="press-articles">
<li><a href="https://www.zdnet.com/article/software-freedom-conservancy-wins-big-step-forward-for-open-source-rights/"><b>ZDNet</b> &mdash; Software Freedom Conservancy wins big step forward for open-source rights</a></li>
<li><a href="https://www.theregister.com/2022/05/16/vizio_gpl_contract/"><b>The Register</b> &mdash; GPL legal battle: Vizio told by judge it will have to answer breach-of-contract claims</a></li>
<li><a href="https://lwn.net/Articles/895405/"><b>LWN</b> &mdash; SFC v. Vizio remanded back to California state courts</a></li>
</ul>
<h2 id="Filing">Coverage of the <a href="/docs/software-freedom-conservancy-v-vizio-complaint-2021-10-19.pdf">Complaint</a> filing</h2>
<ul class="press-articles">
<li><a href="https://www.theregister.com/2021/10/20/vizio_gpl_lawsuit/"><b>The Register</b> &mdash; &ldquo;Software Freedom Conservancy sues TV maker Vizio for GPL infringement&rdquo;</a></li>
<li><a href="https://lwn.net/SubscriberLink/873415/6a613fb23105d329/"><b>LWN</b> &mdash; &ldquo;Empowering users of GPL software&rdquo;</a></li>
<li><a href="https://www.zdnet.com/article/software-freedom-conservancy-sues-vizio-for-gpl-violations/"><b>ZDNET</b> &mdash; &ldquo;Software Freedom Conservancy sues Vizio for GPL violations&rdquo;</a></li>
<li><a href="https://thestack.technology/vizio-sued-open-source-gpl-copyleft/"><b>The Stack</b> &mdash; &ldquo;TV maker Vizio sued for alleged copyleft violations — after failing to disclose source code&rdquo;</a></li>
<li><a href="https://www.reuters.com/legal/transactional/vizio-sued-by-nonprofit-share-code-open-source-software-2021-10-20/"><b>Reuters</b> - &ldquo;Vizio sued by nonprofit to share code for open-source software&rdquo;</a></li>
<li><a href="https://www.lawyer-monthly.com/2021/10/software-freedom-conservancy-sues-vizio-over-source-code/"><b>Lawyer Monthly</b> &mdash; &ldquo;Software Freedom Conservancy Sues Vizio Over Source Code&rdquo;</a></li>
<li><a href="https://finance.yahoo.com/news/software-freedom-conservancy-files-repair-120000898.html"><b>Yahoo! Finance</b> &mdash; &ldquo;Software Freedom Conservancy files right-to-repair lawsuit against California TV manufacturer Vizio Inc. for alleged GPL violations&rdquo;</a></li>
<li><a href="https://www.prweb.com/releases/software_freedom_conservancy_files_right_to_repair_lawsuit_against_california_tv_manufacturer_vizio_inc_for_alleged_gpl_violations/prweb18275065.htm"><b>PR Web</b> &mdash; &ldquo;Software Freedom Conservancy files right-to-repair lawsuit against California TV manufacturer Vizio Inc. for alleged GPL violations&rdquo;</a></li>
</ul>
<h3>Updates</h3>
<ul class="updates">
<li><a href="https://lwn.net/Articles/877294/"><b>LWN</b> &mdash; &ldquo;SFC: First Update on the Vizio lawsuit&rdquo;</a></li>
<li><a href="https://www.zdnet.com/article/open-source-vizio-lawsuit-takes-an-ugly-turn/"><b>ZDNet</b> &mdash; &ldquo;Open-source Vizio lawsuit takes an ugly turn&rdquo;</a></li>
</ul>
{% endblock %}

View file

@ -11,17 +11,17 @@
<p>This Privacy Statement applies to all information collected by or submitted to Conservancy, including personal data. &ldquo;Personal data&rdquo; is data that can be used to identify an individual.</p>
<p>Conservancy collects personal data when:</p>
<ul>
<li>you sign up as a Conservancy Supporter or otherwise donate to Conservancy;</li>
<li>you sign up as a Conservancy Sustainer or otherwise donate to Conservancy;</li>
<li>you visit any Conservancy web site;</li>
<li>you use one of Conservancy&rsquo;s Mailman sites or lists, hosted at lists.sfconservancy.org or lists.copyleft.org;</li>
<li>you use one of Conservancy&rsquo;s Kallithea sites or repositories, hosted at k.sfconservancy.org or k.copyleft.org;</li>
<li>you use one of Conservancy&rsquo;s Forgejo sites or repositories, hosted at f.sfconservancy.org;</li>
<li>you use one of Conservancy&rsquo;s Etherpad sites, hosted at pad.sfconservancy.org;</li>
<li>you use one of Conservancy&rsquo;s wiki sites or partner wiki sites, hosted at npoacct.sfconservancy.org or copyleft.org;</li>
<li>you use one of Conservancy&rsquo;s project or partner project IRC channels, #npoacct and #copyleft on the Freenode IRC network;</li>
<li>you participate in surveys and evaluations;</li>
<li>you submit questions or comments to us.</li>
</ul>
<p>Conservancy&rsquo;s member projects may also collect data and have their own privacy policies which specify what they do with the data they collect. This policy applies to Conservancy&rsquo;s general operations, Supporter program and websites.</p>
<p>Conservancy&rsquo;s member projects may also collect data and have their own privacy policies which specify what they do with the data they collect. This policy applies to Conservancy&rsquo;s general operations, Sustainer program and websites.</p>
<p>When you visit any Conservancy web site (including the specific sites named above), we collect your IP address to maintain our servers, estimate de-identified visitor patterns, and attribute changes to public resources like wikis and Etherpad documents.</p>
<p>When you subscribe or post to a Mailman mailing list, Mailman will collect your email address and (optionally) name. When you post to a list, Mailman will additionally archive all the information in your email, including all headers, which typically include your IP address.</p>
<p>When you create an account on a Kallithea site, it collects your email address for authentication. In may also collect your name (to identify your contributions to others) and your SSH public key (optional - to authenticate you when you push changes to source repositories).</p>
@ -58,11 +58,12 @@
<ul>
<li>To attribute your contributions to mailing lists, source repositories, Etherpads, wikis, and IRC channels.</li>
<li>As required to provide service, and for e-mail housing (as a consequence of uses already described in this Privacy Statement). It is in Conservancys legitimate business interest to provide all users an accurate record of data and content provided by Conservancys services, and to maintain the integrity of that data and content for historical, scientific, and research purposes. This data and content may include but is not limited to email, code changes, comments, and artifacts.</li>
<li>We may use stamps.com to mail items to you, such as Sustainer t-shirts, in which case we will give stamps.com the details needed to perform its services, such as your name, address, email address, phone number, and contents of the package. This information will then be subject to <a href="https://www.stamps.com/privacy-policy/">stamps.com&rsquo;s privacy policy</a>.</li>
<li>As required by law (such as responding to a valid subpoena, warrant, audit, or agency action, or to prevent fraud).</li>
<li>For research activities, including the production of statistical reports (such aggregated information is used to describe our services and is not used to contact the subjects of the report).</li>
</ul>
<h2>Donations</h2>
<p>We receive personal information from third party services when you donate to us via online payment mechanisms. We do not sell or distribute this information to third parties. Conservancy uses this information to acknowledge your donation and send you occasional solicitations and newsletters. Donors can opt out of all contact or specify only print or e-mail contact by emailing <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#112;&#114;&#105;&#118;&#97;&#99;&#121;&#64;&#115;&#102;&#99;&#111;&#110;&#115;&#101;&#114;&#118;&#97;&#110;&#99;&#121;&#46;&#111;&#114;&#103;">&#112;&#114;&#105;&#118;&#97;&#99;&#121;&#64;&#115;&#102;&#99;&#111;&#110;&#115;&#101;&#114;&#118;&#97;&#110;&#99;&#121;&#46;&#111;&#114;&#103;</a>. Donor names are posted on our <a href="https://sfconservancy.org/sponsors/">Sponsors &amp; Supporters</a> page as a recognition of their support. At the time of the donation, the donor can ask to be anonymous, so that their name will not be publicly recognized.</p>
<p>We receive personal information from third party services when you donate to us via online payment mechanisms. We do not sell or distribute this information to third parties. Conservancy uses this information to acknowledge your donation and send you occasional solicitations and newsletters. Donors can opt out of all contact or specify only print or e-mail contact by emailing <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#112;&#114;&#105;&#118;&#97;&#99;&#121;&#64;&#115;&#102;&#99;&#111;&#110;&#115;&#101;&#114;&#118;&#97;&#110;&#99;&#121;&#46;&#111;&#114;&#103;">&#112;&#114;&#105;&#118;&#97;&#99;&#121;&#64;&#115;&#102;&#99;&#111;&#110;&#115;&#101;&#114;&#118;&#97;&#110;&#99;&#121;&#46;&#111;&#114;&#103;</a>. Donor names are posted on our <a href="https://sfconservancy.org/sponsors/">Sponsors &amp; Sustainers</a> page as a recognition of their support. At the time of the donation, the donor can ask to be anonymous, so that their name will not be publicly recognized.</p>
<h2>Receiving E-Mail</h2>
<p>Conservancy may send you e-mail to authorize accounts you create on our sites, to inform you of important upcoming Conservancy events, to send occasional solicitations in connection with our donor programs as described above or in response to your questions. For your protection, Conservancy may contact you in the event that we find an issue that requires your immediate attention. Conservancy processes your personal data in these cases to fulfill and comply with its contractual obligations to you, to provide the services you have requested, and to ensure the security of your account.</p>
<h2>Cookies and Other Browser Information</h2>
@ -106,7 +107,7 @@ Brooklyn, NY 11201</p>
<p>Conservancy will work with you to resolve any concerns you may have about this Statement.</p>
<h2>Changes to this Privacy Statement</h2>
<p>Conservancy reserves the right to change this policy from time to time. If we do make changes, the revised Privacy Statement will be posted on this site. A notice will be posted on our homepage for 30 days whenever this privacy statement is changed in a material way.
This Privacy Statement was last amended on May 25, 2018.</p>
This Privacy Statement was last amended on December 22, 2020.</p>
<h2>Attribution and License</h2>
<p>This Privacy Policy is licensed under Attribution-ShareAlike 4.0 International (CC BY-SA 4.0). It is a derivative work of</p>
<ul>

View file

@ -372,7 +372,7 @@ Sponsorship Agreement effective on the FIXME day of FIXME, FIXME (the
\vspace{3em}
\signature{Software Freedom Conservancy, Inc.}{Bradley M. Kuhn}{Title: President}
\signature{Software Freedom Conservancy, Inc.}{Karen M. Sandler}{Title: Executive Director}
\signature{}{FIXME-CONTRIBUTOR}{}
\signature{}{FIXME-CONTRIBUTOR}{}

View file

@ -5,18 +5,45 @@
<h1> Applying to Join Conservancy as a Member Project</h1>
<p>Conservancy's Evaluation Committee considers applications monthly on a
rolling basis. Currently, Conservancy has dozens of projects in
various stages of the application process.</p>
<p>Part of Conservancy's activity is through its member projects. These
projects become formally part of Conservancy and have a close relationship
with our activity. Most of our projects are purely software projects, but
we also occasionally accept initiatives designed to advance software
freedom, such as Outreachy.</p>
<p>The application process is somewhat informal. New applicants should
write an initial inquiry email
<p>The situation for non-profit homes for FOSS activities has improved
greatly since Conservancy was founded in 2006. In the USA, options now
exist for 501(c)(3), 501(c)(6) and even for-profit fiscal sponsorship, and
there are other options around the globe as well. Prospective member
projects should carefully consider what type of structure is right for
them.</p>
<p>For our part, Conservancy seeks projects that dedicate themselves to the
advancement of software freedom and focus their projects on the rights of
users to copy, share, modify and improve their software. Being a FOSS
project under an OSI-approved and DFSG-free license is mandatory, but not
the only criteria. Given the many options available for fiscal
sponsorship, we are selective and often refer projects to other fiscal
sponsors that are a better fit. Nevertheless, we encourage projects to
that need a non-profit home to apply to many fiscal sponsors.
<p>Conservancy's Evaluation Committee considers applications on a rolling
basis. Conservancy generally has dozens of projects in various stages of
the application process. We do not move rapidly to accept new projects, as
we have found that consideration of joining or forming a non-profit
organization for your project is best done with careful consideration over
a period of many months rather than rapidly.</p>
<p>Conservancy's application process is somewhat informal. New applicants
should write an initial inquiry email
to <a href="mailto:apply@sfconservancy.org">&lt;apply@sfconservancy.org&gt;</a>
with a very brief description of their project and a URL to their
project's website. We'll send back initial questions (if any), and
after those questions are answered, we'll send the full application
materials. Applications should be submitted in plain ASCII text via
email.</p>
with a very brief description of their project and a URL to their project's
website. We'll send back initial questions, and after those questions are
answered, we'll send the full application materials. Applications should
be submitted in plain ASCII text via email. Your application will be
assigned a ticket number in our ticketing system, and please be sure to
include the proper ticket number details in the Subject line of your
emails to ensure they are routed to the right place.</p>
<p>Projects are reviewed by Conservancy's Evaluation Committee, which is
chartered by Conservancy's <a href="/about/board/">Board of
@ -41,7 +68,9 @@
sometimes can take quite a while to finish the application process and
be offered membership, but please note that such delays mean that should
your project ultimately become a member project, your project will then
be a beneficiary of this policy.</p>
be a beneficiary of this policy. Also, generally speaking, we encourage
care and consideration when joining a non-profit and we do not believe
a rapid membership process is in the interest of projects.</p>
<h2>What are the key criteria our project must meet to join?</h2>
@ -49,25 +78,23 @@
outline of those criteria are as follows:</p>
<ul><li>The project must be exclusively devoted to the development and
documentation of FLOSS. The project's goals must be consistent with
Conservancy's tax-exempt purposes, and other requirements imposed
on Conservancy by the IRS' 501(c)(3) rules. Namely, the goal of the
project must to develop and document the software in a not-for-profit
way to advance the public good, and must develop the software in
public.</li>
documentation of FOSS. The project's goals must be consistent with
Conservancy's tax-exempt purposes, and other requirements imposed on
Conservancy by the IRS' 501(c)(3) rules. Namely, the goal of the project
must to develop and document the software in a not-for-profit way to
advance the public good, and must develop the software in public, and
strategically advance software freedom for all users.</li>
<li>The project must be licensed in a way fitting with software
freedom principles. Specifically, all software of the project
should be licensed under a license that is listed both as
a <a href="http://www.gnu.org/licenses/license-list.html">Free
Software license by the Free Software Foundation</a> and as
<li>The project must be licensed in a way fitting with software freedom
principles. Specifically, all software of the project should be
licensed under a license that is listed both as as
an <a href="http://www.opensource.org/licenses/alphabetical">Open
Source license by the Open Source Initiative</a>. All software
documentation for the project should be licensed under a license on
the preceding lists, or under Creative
Source license by the Open Source Initiative</a> and
as <a href="https://www.debian.org/legal/licenses/">DFSG-Free
license</a>. All software documentation for the project should be
licensed under a license on the preceding lists, or under Creative
Commons' <a href="https://creativecommons.org/licenses/by-sa/3.0/">CC-By-SA</a>
or <a href="https://creativecommons.org/licenses/by/3.0/">CC-By</a>
or
or <a href="https://creativecommons.org/licenses/by/3.0/">CC-By</a> or
<a href="https://creativecommons.org/choose/zero/">CC-0</a>.</li>
<li>The project should have an existing, vibrant, diverse community
@ -101,7 +128,15 @@
<p>We maintain a <a href="/members/services">detailed list of services
that Conservancy provides to member projects</a>. If you have
detailed questions about any of the benefits, please
ask <a href="mailto:apply@sfconservancy.org">&lt;apply@sfconservancy.org&gt;</a>.</p>
ask <a href="mailto:apply@sfconservancy.org">&lt;apply@sfconservancy.org&gt;</a>
in your application ticket. We find however that projects will find
Conservancy a better fit if you don't view Conservancy as a service
provider; we are not a service provider in the sense of your hosting
provider or other vendor. Conservancy projects become a part of
Conservancy, and as such membership with Conservancy is an equal
partnership between you and your project and should be treated as such.
If that's not the kind of relationship you want from your fiscal
sponsor, then other options are likely a better fit for your project.</p>
<h2>Conservancy seems to be called a &ldquo;fiscal sponsor&rdquo; to its
member projects. Does that mean you give our project money if we join?</h2>
@ -153,11 +188,16 @@ not involve itself with technical or artistic decision making. Projects
are asked, however, to keep Conservancy up to date on their
activities.</p>
<p>Additionally, when Conservancy discovers or becomes aware of any legal,
licensing or PR issues regarding your project, Conservancy will contact the
project and ask you to work collectively with Conservancy.</p>
<h2>Once our project joins, who holds its assets (money, copyrights, trademarks, etc.)?</h2>
<p>Conservancy holds assets on behalf of its member projects and
manages and disburses those assets in accordance with the wishes of the
project's leadership. Funds received by Conservancy on behalf of a
project's leadership, as long as those wishes are consistent with non-profit
rules, requirements, and Conservancy's mission. Funds received by Conservancy on behalf of a
project are kept track of separately for each specific project and the
management of those funds is directed by the project. For example, if a
donor wanted to contribute $100 to Project Foo, they would formally make
@ -169,7 +209,7 @@ legitimate non-profit expense fitting with Conservancy's non-profit
mission, Conservancy pays the expense on the Project's behalf.</p>
<p>Similarly, any copyrights, trademarks, domain name or other assets
transferred to a project can also be held by Conservancy on behalf of
transferred to a project are typically held by Conservancy on behalf of
the project. A significant service that Conservancy provides its
members is a vehicle through which copyright ownership in the project can
be unified. There are several advantages to having a consolidated
@ -187,7 +227,7 @@ must transfer their assets from Conservancy in a way that is
consistent with Conservancy's not-for-profit tax status &mdash;
meaning the assets cannot be transferred to an individual or a for-profit
entity. Generally, a project would either find another fiscal sponsor or
form their own independent tax-exempt non-profit.</p>
form their own independent tax-exempt 501(c)(3) non-profit.</p>
<p>We fully expect that some Conservancy projects will ultimately wish to
form their own non-profit 501(c)(3) organizations; that's why we design
@ -225,13 +265,22 @@ form their own independent tax-exempt non-profit.</p>
all to the general fund, but we unfortunately discovered that without
this requirement, Conservancy was not able to offer the myriad of
services to all its projects, particularly to larger projects that
have more income and therefore need more attention from staff.</p>
have more income and therefore need more attention from staff. Even now,
the 10% we receive from our project does not fully fund our fiscal
sponsorship activities; we raise additional funds
through <a href="/sustainer">support program</a> to subsidize our fiscal
sponsorship work.</p>
<p>We do understand that, particularly for small projects that only
receive a few small donations, that donating a percentage of your income
back to Conservancy can be a high burden. Therefore, Conservancy
remains open to discussion on a case-by-case basis for smaller projects
about how to handle this requirement, and applicants should feel free to
raise any concerns about this issue during the application process.</p>
<p>We do understand that, particularly for small projects that only receive a
few small donations, that donating a percentage of your income back to
Conservancy can be a high burden. We encourage such small projects to
consider <a href="https://www.spi-inc.org/">Software in the Public
Interest</a>, which offers fewer services than Conservancy, but only
requires 5% of gross revenue. To our knowledge, SPI is the only fiscal
sponsor operating in FOSS that requires less than 10%; most FOSS fiscal
sponsors require at least 10%, or they operate on a fee-for-service model
whereby projects pay the actual costs of any service they receive (and such
charges are usually much higher than 10%). We urge you to very explicitly
ask about these issues with any fiscal sponsor you consider.</p>
{% endblock %}

View file

@ -1,4 +1,5 @@
{% extends "base_projects.html" %}
{% load static %}
{% block subtitle %}Current Projects - {% endblock %}
{% block submenuselection %}Current{% endblock %}
{% block head %}
@ -12,7 +13,7 @@
<h2><a href="http://argouml.tigris.org/">ArgoUML</a></h2>
<img class="project-logo" src="../../img/projects/argouml.jpg" alt="" />
<img class="project-logo" src="{% static 'img/projects/argouml.jpg' %}" alt="" />
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
@ -26,7 +27,7 @@ and is available in ten languages. See the feature list for more details.</p>
<h2><a href="https://backdropcms.org/">Backdrop CMS</a></h2>
<img class="project-logo" src="/img/Backdrop-Logo-Vertical.png" alt="" />
<img class="project-logo" src="{% static 'img/Backdrop-Logo-Vertical.png' %}" alt="" />
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
@ -42,7 +43,7 @@ can still afford a fantastic Open Source Content Management System.</p>
<h2><a href="http://bongo-project.org/">Bongo</a></h2>
<img class="project-logo" src="../../img/projects/bongo.png" alt="" />
<img class="project-logo" src="{% static 'img/projects/bongo.png' %}" alt="" />
<p>The Bongo Project is creating fun and simple mail, calendaring and
contacts software: on top of a standards-based server stack; we're
@ -51,33 +52,9 @@ personal communications. Bongo is providing an entirely free software
solution which is less concerned with the corporate mail scenario and
much more focused on how people want to organize their lives.</p>
<h2><a href="http://www.boost.org/">Boost</a></h2>
<img class="project-logo" src="../../img/projects/boost.png" alt="" />
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="AD5NQR44365FQ">
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" name="submit" alt="Donate to Boost via PayPal">
</form>
<p>Boost provides free peer-reviewed portable C++ source libraries.</p>
<p>Boost emphasizes libraries that work well with the C++ Standard
Library. Boost libraries are intended to be widely useful, and usable
across a broad spectrum of applications. The Boost license encourages
both commercial and non-commercial use.</p>
<p>Boost aims to establish &ldquo;existing practice&rdquo; and provide
reference implementations so that Boost libraries are suitable for
eventual standardization. Ten Boost libraries are already included in the
C++ Standards Committee's Library Technical Report (TR1) as a step toward
becoming part of a future C++ Standard. More Boost libraries are proposed
for the upcoming TR2.</p>
<h2><a href="http://buildbot.net/">Buildbot</a></h2>
<img class="project-logo" src="../../img/projects/buildbot.png" alt="" />
<img class="project-logo" src="{% static 'img/projects/buildbot.png' %}" alt="" />
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
@ -94,7 +71,7 @@ software development cycle. </p>
<h2 id="busybox"><a href="https://busybox.net/">BusyBox</a></h2>
<img class="project-logo" src="../../img/projects/busybox.png" alt="" />
<img class="project-logo" src="{% static 'img/projects/busybox.png' %}" alt="" />
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
@ -118,24 +95,9 @@ it easy to customize your embedded systems. To create a working
system, just add some device nodes in /dev, a few configuration files
in /etc, and a Linux kernel.</p>
<h2><a href="https://clojars.org/">Clojars</a></h2>
<img class="project-logo" src="../../img/projects/clojars.png" alt="" />
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="CXEQ6V4DH9NNW">
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" name="submit" alt="Donate to Clojars via PayPal">
</form>
<p>Clojars is a community-maintained repository for free and open source
libraries written in the Clojure programming language. Clojars emphasizes
ease of use, publishing library packages that are simple to use with build
automation tools.</p>
<h2><a href="https://www.commonwl.org/">Common Workflow Language</a></h2>
<img class="project-logo" src="/img/projects/CWL-Logo-nofonts.svg" alt="" />
<img class="project-logo" src="{% static 'img/projects/CWL-Logo-nofonts.svg' %}" alt="" />
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
@ -152,7 +114,7 @@ bioinformatics, medical imaging, astronomy, physics, and chemistry.</p>
<h2><a href="https://www.coreboot.org/">coreboot</a></h2>
<img class="project-logo" src="../../img/projects/coreboot.svg" alt="" />
<img class="project-logo" src="{% static 'img/projects/coreboot.svg' %}" alt="" />
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
@ -169,7 +131,7 @@ and Internet of Things devices.</p>
<h2><a href="http://darcs.net/">Darcs</a></h2>
<img class="project-logo" src="../../img/projects/darcs.svg" alt="" />
<img class="project-logo" src="{% static 'img/projects/darcs.svg' %}" alt="" />
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
@ -201,7 +163,7 @@ licensed under the GNU GPL.</p>
<h2><a href="http://etherpad.org/">Etherpad</a></h2>
<img class="project-logo" src="../../img/projects/etherpad.svg" alt="" />
<img class="project-logo" src="{% static 'img/projects/etherpad.svg' %}" alt="" />
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
@ -212,26 +174,16 @@ licensed under the GNU GPL.</p>
<p>Etherpad is is a highly customizable web-based editor providing
collaborative real-time editing.</p>
<h2><a href="https://evergreen-ils.org/">Evergreen</a></h2>
<h2 id="freedv"><a href="https://freedv.org/">FreeDV</a></h2>
<img class="project-logo" src="../../img/projects/evergreen.svg" alt="" />
<img class="project-logo" src="{% static 'img/projects/freedv.png' %}" alt="FreeDV logo" />
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="ADDEVUYBWUK4C">
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" name="submit" alt="Donate to Evergreen via PayPal">
</form>
<p>The Evergreen Project develops an open source ILS (integrated library
system) used by hundreds of libraries across the world. The software, also
called Evergreen, is used by libraries to provide their public catalog
interface as well as to manage back-of-house operations such as
circulation (checkouts and checkins), acquisition and cataloging of
library materials, and sharing resources among groups of libraries and
consortia on the same Evergreen system. Evergreen is designed to be
scalable and supports library operations ranging from a small high school
to large state-wide consortia. Evergreen is released under
the <a href="http://www.gnu.org/licenses/gpl-2.0.html">GPLv2</a>-or-later.</p>
<p>FreeDV is a suite of open source software and accompanying hardware for
digital voice communication over HF radio. It consists of a voice codec
(Codec 2), HF data modems, framing, and forward error correction software.
It is implemented as a software library (libcodec2), that can be linked
with 3rd party digital voice applications or embedded inside software
defined radios.</p>
<h2><a href="http://www.gevent.org/">Gevent</a></h2>
@ -254,7 +206,7 @@ protocol implementations cooperative and support for SSL sockets.</p>
<h2><a href="https://git-scm.com/">Git</a></h2>
<img class="project-logo" src="../../img/projects/git.png" alt="" />
<img class="project-logo" src="{% static 'img/projects/git.png' %}" alt="" />
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
@ -273,21 +225,6 @@ protocol implementations cooperative and support for SSL sockets.</p>
<p>Git is used for version control of files, much like tools such as
Mercurial, Bazaar, Subversion, CVS, Perforce, and Visual SourceSafe.</p>
<h2><a href="https://www.godotengine.org/">Godot Engine</a></h2>
<img class="project-logo" src="../../img/projects/godot/godot-logo.svg" alt="" />
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="XS2JCYXMHV9KJ">
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" name="submit" alt="Donate to Godot via PayPal">
</form>
<p>Godot is an advanced, feature packed, multi-platform 2D and 3D game
engine. It provides a huge set of common tools, so you can just focus on
making your game without reinventing the wheel. Godot is is completely Free
and Open Source under the MIT License.</p>
<h2><a href="/copyleft-compliance/">GPL Compliance Project for Linux Developers</a></h2>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
@ -304,7 +241,7 @@ Linux kernel.</p>
<h2><a href="http://harvey-os.org/">Harvey OS</a></h2>
<img class="project-logo" src="../../img/projects/harvey.svg" alt="" />
<img class="project-logo" src="{% static 'img/projects/harvey.svg' %}" alt="" />
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
@ -316,20 +253,6 @@ Linux kernel.</p>
<p>Harvey strives to provide an accessible development environment. The kernel is compact—less than 100,000 lines of code. You can build it with either GCC or LLVM, and run it under QEMU or real hardware. This makes it especially suitable for education and experimentation. It is a work in progress and the development team welcomes new contributors and ideas.</p>
<h2><a href="http://brew.sh/">Homebrew</a></h2>
<img class="project-logo" src="../../img/projects/homebrew.svg" alt="" />
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="V6ZE57MJRYC8L">
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" name="submit" alt="Donate to Homebrew via PayPal">
</form>
<p>Homebrew is a software package manager for Apple's OS X operating
system. Homebrew installs the free and open source software that OS X
users need that Apple didn't install by default.</p>
<h2><a href="https://houdiniproject.org">Houdini</a></h2>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
@ -344,7 +267,7 @@ maintain themselves.</p>
<h2><a href="https://inkscape.org/">Inkscape</a></h2>
<img class="project-logo" src="../../img/projects/inkscape.svg" alt="" />
<img class="project-logo" src="{% static 'img/projects/inkscape.svg' %}" alt="" />
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
@ -365,9 +288,24 @@ objects that you see in the image. This description is then used to
determine how to plot each line and curve at any resolution or zoom
level.</p>
<h2><a href="https://computinginresearch.org/">Institute for Computing in Research</a></h2>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="CQCVPWE5CZ62U">
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" name="submit" alt="Donate to the Institute for Computing in Research via PayPal">
</form>
<p>The Institute for Computing in Research runs a mentoring program that
trains students finishing 10th, 11th and 12th grade to do rigorous
scientific research using free software. The Institute recruits students who
might not otherwise have access to scientific apprenticeships, offers them a
stipend and pairs them with volunteer mentors who train them to use free
software operating systems and research tools.</p>
<h2><a href="http://www.k-3d.org">K-3D</a></h2>
<img class="project-logo" src="../../img/projects/k3d.png" alt="" />
<img class="project-logo" src="{% static 'img/projects/k3d.png' %}" alt="" />
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
@ -383,7 +321,7 @@ professional artists.</p>
<h2><a href="https://kallithea-scm.org/">Kallithea</a></h2>
<img class="project-logo" src="../../img/projects/kallithea.svg" alt="" />
<img class="project-logo" src="{% static 'img/projects/kallithea.svg' %}" alt="" />
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
@ -396,9 +334,28 @@ leading version control systems, Mercurial and Git. Kallithea hosts your
code, manages access control lists and provides an easy web interface to the
version control system of your choice.</p>
<h2><a href="https://liblouis.io/">Liblouis</a></h2>
<form action="https://www.paypal.com/donate" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="YTG8Y2WP6RJNG" />
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" border="0" name="submit" alt="Donate to Liblouis via PayPal" />
<img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1" />
</form>
<p>
The Liblouis software suite provides an open-source
braille translator, back-translator and formatter for a large number of
languages and braille codes. It is a set of libraries designed for use
in any of a number of applications, both free and commercial. It is
written in C so that it does not require a runtime environment and
hence can be used in applications written in high-level languages such
as Java and Python.
</p>
<h2><a href="http://librehealth.io/">LibreHealth</a></h2>
<img class="project-logo" src="../../img/projects/librehealth.png" alt="" />
<img class="project-logo" src="{% static 'img/projects/librehealth.png' %}" alt="" />
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
@ -416,6 +373,22 @@ leading open source systems; and LibreHealth Radiology, a specialized
distribution of Toolkit customized for radiology health care
professionals.</p>
<h2><a href="https://www.libssh.org/">libssh</a></h2>
<img class="project-logo" src="{% static 'img/projects/libssh.png' %}" alt="" />
<form action="https://www.paypal.com/donate" method="post" target="_top">
<input type="hidden" name="hosted_button_id" value="W85VN9LMBATGN" />
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" border="0" name="submit" title="Donate to Libssh via PayPal" alt="Donate to Libssh via PayPal" />
<img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1" />
</form>
<p>libssh is a multiplatform C library implementing the
SSHv2 protocol for client and server side. With libssh, you can build
applications to remotely execute programs, transfer files, use a
secure and transparent tunnel, manage public keys and much more.</p>
<h2><a href="https://github.com/AltraMayor/XIA-for-Linux/wiki">Linux XIA</a></h2>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
@ -433,7 +406,7 @@ Linux XIA's speed and flexibility.</p>
<h2><a href="https://www.mercurial-scm.org/">Mercurial</a></h2>
<img class="project-logo" src="../../img/projects/mercurial.svg" alt="" />
<img class="project-logo" src="{% static 'img/projects/mercurial.svg' %}" alt="" />
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
@ -451,7 +424,7 @@ Public License.</p>
<h2><a href="http://www.metalinker.org/">Metalink</a></h2>
<img class="project-logo" src="../../img/projects/metalink.svg" alt="" />
<img class="project-logo" src="{% static 'img/projects/metalink.svg' %}" alt="" />
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
@ -469,7 +442,7 @@ or safety.</p>
<h2><a href="http://microblocks.fun/">MicroBlocks</a></h2>
<img class="project-logo" src="/img/projects/microblocks.png" alt="" />
<img class="project-logo" src="{% static 'img/projects/microblocks.png' %}" alt="" />
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
@ -479,23 +452,9 @@ or safety.</p>
<p>MicroBlocks is a new programming language that runs right inside microcontroller boards such as the micro:bit, the NodeMCU and many Arduino boards. The MicroBlocks system allows for dynamic, parallel and interactive programming, but with the twist of letting your projects run autonomously inside the board without being tethered to a computer.</p>
<h2><a href="https://www.northbaypython.org/">North Bay Python</a></h2>
<img class="project-logo" src="../../img/projects/north-bay-python.png" alt="" />
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="E96FCPFPZK25C">
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" name="submit" alt="Donate to North Bay Python via PayPal">
</form>
<p>North Bay Python is a community-organized conference in Petaluma,
California that brings together professionals, enthusiasts, and
students interested in the Python programming language.</p>
<h2><a href="http://www.opentripplanner.org/">OpenTripPlanner</a></h2>
<img class="project-logo" src="../../img/projects/opentripplanner.png" alt="" />
<img class="project-logo" src="{% static 'img/projects/opentripplanner.png' %}" alt="" />
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
@ -512,9 +471,29 @@ multimodal trip planner allowing users to plan trips using a variety of
transportation modes. Additionally, OpenTripPlanner has features for
transportation analysis, including measures of mobility and accessibility.</p>
<h2><a href="https://www.gnome.org/outreachy/">Outreachy</a></h2>
<h2 id="OpenWrt"><a href="https://openwrt.org/">OpenWrt</a></h2>
<img class="project-logo" src="../../img/projects/outreachy.png" alt="" />
<img class="project-logo" src="{% static 'img/projects/openwrt-2020.svg' %}" alt="" />
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick" />
<input type="hidden" name="hosted_button_id" value="MLJ3HZD7TWK88" />
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" border="0" name="submit" alt="Donate to OpenWrt via PayPal" />
</form>
<p>The OpenWrt Project is a Linux-based operating system targeting embedded
devices. Instead of trying to create a single, static firmware, OpenWrt
provides a fully writable filesystem with package management. This frees you
from the application selection and configuration provided by the vendor and
allows you to customize the device through the use of packages to suit any
application. For developers, OpenWrt is the framework to build an
application without having to build a complete firmware around it; for users
this means the ability for full customization, to use the device in ways
never envisioned.</p>
<h2><a href="https://www.outreachy.org/">Outreachy</a></h2>
<img class="project-logo" src="{% static 'img/projects/outreachy.png' %}" alt="" />
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
@ -530,7 +509,7 @@ internship opportunities twice a year with many free software organizations.
<h2><a href="https://phpmyadmin.net/">phpMyAdmin</a></h2>
<img class="project-logo" src="../../img/projects/phpmyadmin.png" alt="" />
<img class="project-logo" src="{% static 'img/projects/phpmyadmin.png' %}" alt="" />
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
@ -551,7 +530,7 @@ seventy languages.</p>
<h2><a href="http://qemu.org">QEMU</a></h2>
<img class="project-logo" src="../../img/projects/qemu.svg" alt="" />
<img class="project-logo" src="{% static 'img/projects/qemu.svg' %}" alt="" />
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
@ -570,23 +549,9 @@ seventy languages.</p>
KVM kernel module in Linux. When using KVM, QEMU can virtualize x86,
server and embedded PowerPC, and S390 guests.</p>
<h2><a href="https://racket-lang.org">Racket</a></h2>
<img class="project-logo" src="../../img/projects/racket.svg" alt="" />
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="URMNGBCTB96G2">
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" name="submit" alt="Donate to Racket via PayPal">
</form>
<p>Racket is a general-purpose programming language as well as the worlds
first ecosystem for language-oriented programming. Make your dream language,
or use one of the dozens already available.</p>
<h2><a href="https://reproducible-builds.org">Reproducible Builds</a></h2>
<img class="project-logo" src="../../img/projects/2018-10_Reproducible-Builds.svg" alt="" />
<img class="project-logo" src="{% static 'img/projects/2018-10_Reproducible-Builds.svg' %}" alt="" />
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
@ -601,7 +566,7 @@ whistleblowers, or anyone wishing to communicate securely under a repressive reg
<h2><a href="https://www.samba.org/samba/">Samba</a></h2>
<img class="project-logo" src="../../img/projects/samba.png" alt="" />
<img class="project-logo" src="{% static 'img/projects/samba.png' %}" alt="" />
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
@ -628,7 +593,7 @@ of systems, and equipment. Samba is released under the GPL.</p>
<h2><a href="http://seleniumhq.org">Selenium</a></h2>
<img class="project-logo" src="../../img/projects/selenium.png" alt="" />
<img class="project-logo" src="{% static 'img/projects/selenium.png' %}" alt="" />
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
@ -644,28 +609,24 @@ which allows many tests using the APIs to be run in parallel. It works
with most browsers, including Firefox, Internet Explorer, Google Chrome,
Safari and Opera.</p>
<h2><a href="https://www.spec-ops.io/">Spec-Ops</a></h2>
<h2 id="Sourceware"><a href="http://sourceware.org/">Sourceware</a></h2>
<img class="project-logo" src="../../img/projects/spec-ops.png" alt="" />
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="VWQ65XRBPK9YY">
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" name="submit" alt="Donate to Spec-Ops via PayPal">
<form action="https://www.paypal.com/donate" method="post" target="_top">
<input type="hidden" name="hosted_button_id" value="8UPBXX9EMBH8C" />
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif" border="0" name="submit" title="PayPal - The safer, easier way to pay online!" alt="Donate with PayPal button" />
<img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1" />
</form>
<p>Spec-Ops' mission is to identify critical open standards activities
and move them along. Spec-Ops puts experts in the room who understand
the technology, who know about the process of creating standards, and
who have no specific personal or corporate agenda &mdash; then lets them get
on with it. Spec-Ops also develops free and open source software
(licensed under BSD-style licenses) to test and implement these
standards, in order to speed adoption and ensure their long term
viability and success.</p>
<img class="project-logo" src="{% static 'img/projects/sourceware.svg' %}" alt="copyleft logo" />
<p>Sourceware is a Free Software hosting project for toolchain and
developer tools. Free Software needs Free Infrastructure. It is
our goal to offer a worry-free, friendly home for Free Software
projects.</p>
<h2><a href="http://squeak.org/">Squeak</a></h2>
<img class="project-logo" src="../../img/projects/squeak.svg" alt="" />
<img class="project-logo" src="{% static 'img/projects/squeak.svg' %}" alt="" />
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
@ -680,28 +641,9 @@ Smalltalk making it easy to debug, analyze, and change. Squeak is the
vehicle for a wide range of projects from multimedia applications,
educational platforms to commercial web application development.</p>
<h2><a href="https://sugarlabs.org">Sugar Labs</a></h2>
<img class="project-logo" src="../../img/projects/sugar-labs.svg" alt="" />
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="L5KQFW6YMATRJ">
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" name="submit" alt="Donate to Sugar Labs via PayPal">
</form>
<p>Sugar is a learning platform that reinvents how computers are used for
education. Sugar's focus on sharing, criticism, and exploration is
grounded in the culture of free software. Sugar Labs' mission is to
produce, distribute and support the use of the Sugar learning platform.
Sugar Labs supports the community of educators and software developers who
want to extend the platform. Sugar is a community project: under the
Sugar Labs umbrella hundreds of software developers and thousands of
educators work together to build, disseminate, and support Sugar.</p>
<h2><a href="http://surveyos.sourceforge.net/">SurveyOS</a></h2>
<img class="project-logo" src="../../img/projects/surveyos.png" alt="" />
<img class="project-logo" src="{% static 'img/projects/surveyos.png' %}" alt="" />
<p>The Survey Open Source (SurveyOS) Project is a non-profit project of
the Software Freedom Conservancy dedicated to fostering cooperation
@ -714,7 +656,7 @@ functionality to other software.</p>
<h2><a href="http://www.swig.org/">SWIG</a></h2>
<img class="project-logo" src="../../img/projects/swig.jpg" alt="" />
<img class="project-logo" src="{% static 'img/projects/swig.jpg' %}" alt="" />
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
@ -733,7 +675,7 @@ C/C++ software.</p>
<h2><a href="http://teachingopensource.org/">Teaching Open Source</a></h2>
<img class="project-logo" src="../../img/projects/teaching-open-source.png" alt="" />
<img class="project-logo" src="{% static 'img/projects/teaching-open-source.png' %}" alt="" />
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
@ -747,26 +689,27 @@ within academic institutions. The TOS community is supported by a web
site, mailing list, and planet and welcomes new community members from
both academia and FLOSS projects.</p>
<h2><a href="https://twistedmatrix.com/">Twisted</a></h2>
<h2><a href="http://github.com/u-boot/u-boot/">U-Boot</a></h2>
<img class="project-logo" src="../../img/projects/twisted.svg" alt="" />
<img class="project-logo" src="{% static 'img/projects/uboot.svg' %}" alt="" />
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="ZB3NXPUZHQUKS">
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" name="submit" alt="Donate to Twisted via PayPal">
<form action="https://www.paypal.com/donate" method="post" target="_top">
<input type="hidden" name="hosted_button_id" value="H4678A9YMWRZS" />
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" border="0" name="submit" title="PayPal - The safer, easier way to pay online!" alt="Donate with PayPal button" />
<img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1" />
</form>
<p>Twisted is an event-based engine for Internet applications, written in
Python. Twisted supports TCP, SSL and TLS, UDP, Unix sockets, multicast,
and serial ports. It also includes a Web server, an SMTP/POP3 server, a
telnet server, an SSH server, an IRC server, a DNS server, and of course
APIs for creating new protocols. It supports integration with GTK+ 2, Qt,
Tkinter, wxPython, Mac OS X (PyObjC) and Win32 event loops.</p>
<p>U-Boot is the "universal boot loader". A critical piece of free software,
making sure that a free bootloader can exist for myriad devices and chipsets.
Existing for over 25 years, U-Boot has shown a longevity and quality of
release that is enviable for free software projects. Joining other SFC
projects like coreboot, OpenWrt, and Sourceware, U-Boot helps preserve as
much freedom on our devices as possible.</p>
<h2><a href="http://www.winehq.org/">Wine</a></h2>
<img class="project-logo" src="../../img/projects/wine.png" alt="" />
<img class="project-logo" src="{% static 'img/projects/wine.png' %}" alt="" />
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
@ -786,7 +729,7 @@ x86-based Unixes, including Linux, Mac OS X, FreeBSD, and Solaris.</p>
<h2><a href="https://xapian.org/">Xapian</a></h2>
<img class="project-logo" src="../../img/projects/xapian.png" alt="" />
<img class="project-logo" src="{% static 'img/projects/xapian.png' %}" alt="" />
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
@ -799,4 +742,19 @@ easily add advanced indexing and search facilities to their own
applications. It has built-in support for several families of weighting
models and also supports a rich set of boolean query operators.</p>
<h2 id="xorg"><a href="https://www.x.org/wiki/">Xorg</a></h2>
<img class="project-logo" src="{% static 'img/projects/xorg_logo.png' %}" alt="" />
<form action="https://www.paypal.com/donate" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="67Y5PU5CG5V2A" />
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" border="0" name="submit" alt="Donate to Xorg via PayPal" />
<img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1" />
</form>
<p>
The X.Org project provides an open source implementation of the X Window System. The development work is being done in conjunction with the freedesktop.org community.
</p>
{% endblock %}

View file

@ -29,30 +29,30 @@ interests. In particular, the following scenarios are to be identified as
conflicts of interest:</p>
<ul>
<li>
<p>A Conservancy Person (or his or her family member) is a party to a
<p>A Conservancy Person (or their family member) is a party to a
contract, or involved in a transaction with Conservancy for goods
or services.</p>
</li>
<li>
<p>A Conservancy Person (or his or her family member) is a director,
<p>A Conservancy Person (or their family member) is a director,
officer, agent, partner, associate, employee, trustee, personal
representative, receiver, guardian, custodian, legal representative or in
some other way has a fiduciary duty to an entity involved in a transaction
with Conservancy.</p>
</li>
<li>
<p>A Conservancy Person (or his or her family member) is engaged in a substantial
<p>A Conservancy Person (or their family member) is engaged in a substantial
capacity or has a material financial interest in a for-profit enterprise
that competes with Conservancy or a Conservancy Project.</p>
</li>
<li>
<p>A Conservancy Person (or his or her family member) has a material
<p>A Conservancy Person (or their family member) has a material
financial interest in, or fiduciary duty to an entity Conservancy
has engaged in a free software license compliance effort, enforcement
effort, or related litigation on behalf of a Conservancy project.</p>
</li>
<li>
<p>A Conservancy Person (or his or her family member) has a material
<p>A Conservancy Person (or their family member) has a material
financial interest in or fiduciary duty to the competitor of an entity
Conservancy has engaged in a free software license compliance effort,
enforcement effort, or related litigation on behalf of a Conservancy
@ -70,7 +70,7 @@ not compromised by personal interests.</p>
<li>
<p><strong>No Personal Profit or Gain.</strong> No Conservancy Person (or family
member) shall derive any personal profit or gain, directly or indirectly,
by reason of his or her participation with Conservancy. Personal profit
by reason of their participation with Conservancy. Personal profit
or gain does not include compensation approved by the Board for paid
employees, or reimbursement of legitimate Conservancy expenses.</p>
</li>
@ -81,10 +81,9 @@ which he or she may have in any matter pending before Conservancy
and shall refrain from participation in any decision on such matter.</p>
</li>
<li>
<p><strong>Conservancy Conflict Disclosure Form.</strong> Every six months, each
<p><strong>Conservancy Conflict Disclosure Form.</strong> Every one year, each
Conservancy Person shall complete a Conservancy Conflict Disclosure
form attached as Exhibit A and submit it to the Board and to
Conservancy&rsquo;s General Counsel.</p>
form attached as Exhibit A and submit it to the Board</p>
</li>
</ul>
<h3 id="conflict-resolution-procedures-for-conservancy-persons">Conflict Resolution Procedures for Conservancy Persons</h3>
@ -116,7 +115,7 @@ conflicted Conservancy Person must abstain from, and must not hear nor
read the pre-vote discussions of the matter by the Board or Board
Committee, except to disclose material facts and to respond to
questions. The conflicted Conservancy Person shall not attempt to exert
his or her personal influence with respect to the matter, either at or
their personal influence with respect to the matter, either at or
outside the meeting. The Conflicted Person may read minutes and/or
logs of the matter&rsquo;s discussion after voting is complete.</p>
</li>
@ -169,38 +168,38 @@ technical direction (&ldquo;PLC Persons&rdquo;). Conservancy understands and
expects that many PLC Persons exploit professional skills relating
to their Project as individuals by providing developing, consulting,
and/or training services. Nonetheless, each PLC Person has a duty
to act in the best interests of his or her Project when making technical
to act in the best interests of their Project when making technical
decisions about the Project.</p>
<h3 id="defining-a-conflict-of-interest-for-a-plc-person">Defining a Conflict of Interest for a PLC Person</h3>
<p>In general, PLC Persons should avoid making technical decisions on
matters where his or her personal and/or professional interests are
at odds with his or her Project&rsquo;s interests. In particular, the following
matters where their personal and/or professional interests are
at odds with their Project&rsquo;s interests. In particular, the following
scenarios are to be identified as conflicts of interest:</p>
<ul>
<li>
<p>A PLC Person (or his or her family member) is a party to a contract,
<p>A PLC Person (or their family member) is a party to a contract,
or involved in a transaction with Conservancy for goods or services
relating to his or her Project.</p>
relating to their Project.</p>
</li>
<li>
<p>A PLC Person (or his or her family member) is an employee, owner,
<p>A PLC Person (or their family member) is an employee, owner,
or otherwise has a financial interest in an entity involved in a transaction
with Conservancy relating to his or her Project.</p>
with Conservancy relating to their Project.</p>
</li>
<li>
<p>A PLC Person (or his or her family member) is a director, officer,
<p>A PLC Person (or their family member) is a director, officer,
agent, partner, associate, trustee, receiver, guardian, personal representative,
custodian, legal representative or in some way has a fiduciary duty
to an entity involved in a transaction with Conservancy relating to
his or her Project.</p>
their Project.</p>
</li>
<li>
<p>A PLC Person (or his or her family member) is engaged in a substantial capacity
<p>A PLC Person (or their family member) is engaged in a substantial capacity
or has a material financial interest in a for-profit enterprise that
competes with his or her Project.</p>
competes with their Project.</p>
</li>
<li>
<p>A PLC Person (or his or her family member) is the owner of copyrights
<p>A PLC Person (or their family member) is the owner of copyrights
that are the subject of a Conservancy-led compliance effort, enforcement
effort, or related litigation &ndash; and the PLC Person (or a family member)
has a material financial interest in or fiduciary duty to an entity
@ -208,7 +207,7 @@ adverse to this effort.</p>
</li>
</ul>
<p>Conservancy further notes that a scenario may arise where a PLC Person
(or his or her family member) works for, owns, or otherwise has a
(or their family member) works for, owns, or otherwise has a
financial interest in an entity that competes with a second entity
involved in a transaction with Conservancy regarding the Project in
question. This may or may not result in a conflict of interest, depending
@ -232,7 +231,7 @@ of legitimate Project expenses.</p>
</li>
<li>
<p><strong>Disclosure and Abstention when Conflicted.</strong> Each PLC Person
shall disclose to his or her PLC and to Conservancy&rsquo;s Executive Director
shall disclose to their PLC and to Conservancy&rsquo;s Executive Director
any conflict of interest which he or she may have in any matter pending
before the PLC and shall refrain from participation in any decision
on such matter.</p>
@ -285,7 +284,7 @@ conflicted PLC Person must abstain from, and must not hear nor
read the pre-vote discussions of the matter by the PLC or PLC
sub-committee, except to disclose material facts and to respond to
questions. The conflicted PLC Person shall not attempt to exert
his or her personal influence with respect to the matter, either at or
their personal influence with respect to the matter, either at or
outside the meeting. The conflicted PLC Person may read minutes and/or
logs of the matter&rsquo;s discussion after voting is complete.</p>
</li>
@ -390,10 +389,10 @@ Persons serve the public interest and are to have a clear understanding
of Conservancy&rsquo;s charitable mission. All decisions made by Conservancy
Persons are to be made solely on the basis of a desire to promote
the best interests of Conservancy and the public good.</p>
<p>This Form is to be completed every six months and submitted to the
Chairperson of Conservancy&rsquo;s Board and to Conservancy&rsquo;s General Counsel.</p>
<p>This Form is to be completed every one year and submitted to the
Chairperson of Conservancy&rsquo;s Board</p>
<p>Date: <code>__________________________</code></p>
<p>Next Form to be completed by (six months from now): <code>__________________</code></p>
<p>Next Form to be completed by (one year from now): <code>__________________</code></p>
<p>Name: <code>__________________________</code></p>
<p>Position (employee/officer/trustee): <code>_________________________________</code></p>
<p>I affirm the following:</p>
@ -440,12 +439,12 @@ to the best of my knowledge.</p>
<h2 id="exhibit-b-project-leadership-committee-conflict-disclosure-form">Exhibit B: Project Leadership Committee Conflict Disclosure Form</h2>
<p>Each volunteer, academic and/or industry professional that serves
on a Conservancy Member Project&rsquo;s Project Leadership Committee (PLC)
have a duty to act in the best interests of his or her Project when
have a duty to act in the best interests of their Project when
making decisions about the Project&rsquo;s technical direction. Every committee
member must also abide by New York State and USA federal laws associated with non-profit
organizational governance.</p>
<p>Committee members must complete this form annually and submit it to
his or her PLC and to Conservancy&rsquo;s Executive Director.</p>
their PLC and to Conservancy&rsquo;s Executive Director.</p>
<p>Date: <code>_____________</code></p>
<p>Next Form to be completed by (one year from now): <code>___________</code></p>
<p>Name: <code>____________________________________</code></p>

View file

@ -0,0 +1,705 @@
{% extends "base_projects.html" %}
{% block subtitle %}Travel and Reimbursable Expense Policy - {% endblock %}
{% block submenuselection %}Policies{% endblock %}
{% block content %}
<h1 id="software-freedom-conservancy-travel-and-reimbursable-expense-policy">Software Freedom Conservancy Travel and Reimbursable Expense Policy</h1>
<h2 id="covid-19-travel-policy-amendment-2020-03-27">COVID-19 Travel Policy Amendment, 2020-03-27</h2>
<p>In this difficult time, Conservancy is committed to reimbursing both employee and volunteer travelers who canceled program-related travel due to the COVID-19 pandemic. Please keep in mind that Conservancy is a small charity, and we ask travelers to help us save the most money for Conservancy&rsquo;s projects. You can do this by maximizing the value for cancellations and by avoiding or reducing reimbursements when the vendor of the travel service offers credit and refunds.</p>
<p>This Policy will remain in effect indefinitely. We will officially rescind this Policy after the impact of the COVID-19 pandemic has subsided. Check back to our travel policy page for the rescinded date before you submit canceled travel reimbursement or book any new travel.</p>
<h3 id="new-travel-hiatus">New Travel Hiatus</h3>
<p>No new travel may be <strong>booked</strong> for reimbursement for Conservancy without explicit preapproval directly from Conservancy&rsquo;s Executive Director. Any travel booked without such preapproval during that period will not be reimbursed. If you need such preapproval, please write to the approvals queue and describe why the travel warrants an exception to this Policy. Ask your PLC for the contact information if you don&rsquo;t have it.</p>
<p>Canceled trips due to COVID-19 pandemic will be reimbursed as follows.</p>
<h3 id="trivial-amounts-exception">Trivial Amounts Exception</h3>
<p>If the entire cost of any specific item is less than or equal to US$150, you need not provide additional documentation for cancellation. Simply submit the expense with the documentation as required under the main travel policy, and include a statement that asserts you did not travel (e.g., &ldquo;I am submitting a request for reimbursement for Conservancy-related travel for PROJECT which was canceled due to the COVID-19 pandemic.&rdquo;)</p>
<p>Note that the US$150 limit is for five different items: US$150 for airfare, US$150 for hotel/accommodations, US$150 for ground transportation, US$150 for visa fees, and US$150 for conference registration fees.</p>
<p>This limit may be further reduced by any overall budget set by your project. For example, Outreachy interns, whose travel budget is typically $500 total, may not exceed a $500 reimbursement in any event.</p>
<h3 id="airfare">Airfare</h3>
<p>Most airlines are offering flight credit for canceled flights, although some are offering full refunds. Typically, you <strong>cannot</strong> receive this credit or refund unless you phone the airline.</p>
<p>If your airline&rsquo;s online system does not offer a refund or flight credit, please phone your airline and request a refund. If the airline refuses a refund, ask for flight credit. Many airlines have written policies on their website, such as <a href="https://www.delta.com/us/en/advisories/coronavirus-travel/overview">Delta&rsquo;s</a>.</p>
<p>Please take notes during your call, including the name of the agent, any confirmation number they give you, the date by which your credit must be used, and the amount of the credit. Most airlines are offering credit for use within one year of the purchase and/or travel date.</p>
<p>Submit to Conservancy for reimbursement the following three things:</p>
<pre><code> * Your original flight search
* Your original receipt
* A document officially from the airline that shows that flight(s) is/are canceled
* Your notes (or if possible, written documentation from the airline) documenting your attempt to receive refund/credit. The notes should include when you called, who you talked to, what you requested, of what refund and/or credit you received (if any) and when it expires
</code></pre>
<p>These items must be submitted in full no less than 90 days after your original first date of travel. We will not reimburse if submissions are not timely.</p>
<p>If all documentation is in order and the submission is timely, Conservancy will reimburse on usual NET-30 terms the amount you paid out-of-pocket to the airline. If you received flight credit, <strong>you may not use the credit for personal travel</strong> unless you return that amount to Conservancy. We encourage you to use this credit for Conservancy travel. We will track the flight credit on our books, and expire it on the date of expiration. You will be given a new accounts-payable (A/P) ticket to use with an expiration set to the date of your credit expiration. Please be sure to use that ticket for any reimbursement that includes your flight credit. If you ultimately do not travel for Conservancy and/or your member project before the expiration, the ticket will expire and we&rsquo;ll move the funds off our books.</p>
<p>In the unlikely event that your airline has a written policy that they are offering no future flight credit nor refunds for COVID-19 cancellations, you can submit that as documentation for reimbursement in lieu of documentation of your phone call.</p>
<h3 id="hotels">Hotels</h3>
<p>Most hotels are offering full refunds, even for advance purchase, non-refundable rates. For example, here is <a href="https://www.hilton.com/en/corporate/coronavirus/">Hilton&rsquo;s poicy</a>.</p>
<p>In our experience, even smaller non-chain hotels are offering refunds if you phone to request them.</p>
<p>For prepurchase hotels, where your original receipt shows that the fare was a prepurchased and non-refundable rate, please follow the procedures above for flights to seek a refund and/or credit.</p>
<p>For nonprepurchased hotels, for example, those that have a cancellation period before arrival, it is your responsibility to cancel these in a timely manner. Conservancy will not reimburse for hotel costs where you failed to take advantage the free cancellation period.</p>
<p>In the unlikely event that you were scheduled to travel immediately before COVID-19 cancellations began (e.g., if you were scheduled to travel the first week of March), and you had to cancel too quickly and were charged by the hotel, please follow the non-refundable fare procedures.</p>
<h3 id="ground-transportation">Ground Transportation</h3>
<p>Cancellation policies vary for ground transportation (such as trains). Please follow the rules for airfare in this case.</p>
<h3 id="visa-fees">Visa Fees</h3>
<p>Visa fees are generally non-refundable in any event, and our research has shown that most countries are not refunding visa fees for canceled travel due to COVID-19. Accordingly, you may submit your full visa fee receipt for reimbursement pursuant to the main travel policy.</p>
<h3 id="conference-fees">Conference Fees</h3>
<p>We have yet to hear of a conference that is not refunding conference registration fees for individuals. However, in the unlikely event that the conference you sought to attend is not refunding, please follow the airfare refund/credit documentation procedures above.</p>
<h3 id="mie-per-diem">M&amp;IE Per Diem</h3>
<p>All other items of reimbursement are typically covered by M&amp;IE Per Diem. No items that are typically covered by M&amp;IE Per Diem are reimbursable if you do not travel, and therefore only the items listed in this document are currently covered for COVID-19 cancellations. If you incurred other expenses not explained here, please write back to your A/P ticket and explain the situation.</p>
<h3 id="other-difficulties">Other Difficulties</h3>
<p>Please contact us via your reimbursement ticket if for some reason it is impossible or very difficult for you to follow this Policy.</p>
<h2 id="overview">Overview</h2>
<p>This Travel and Reimbursable Expense Policy (&ldquo;Policy&rdquo;) applies to all
Conservancy Member Projects (&ldquo;Projects&rdquo;) of Software Freedom Conservancy
(&ldquo;Conservancy&rdquo;) and has been created to memorialize Conservancy&rsquo;s
reimbursement policies relating to travel and other business expenses
incurred by Conservancy staff, Project Leadership Committee (&ldquo;PLC&rdquo;)
members, and project volunteers while engaged in business on behalf of, or
at the behest of Conservancy and/or a Project (&ldquo;Travelers&rdquo;).</p>
<p>This Policy includes an Easy Reference Guide that can be used as a
template for most of the travel covered under this Policy. When in doubt,
refer to the more detailed sections below.</p>
<h2 id="purpose">Purpose</h2>
<p>Conservancy must maintain effective control of business-related expenses
in order to maintain its financial viability and tax exempt status.
Conservancy and each Project is also accountable to our donors to ensure
that we manage their contributions wisely and maximize our ability to
pursue our charitable mission. As such, Conservancy expects Travelers to
use good judgment and to claim reimbursement for only those expenses that
are necessary and reasonable. Excessive expenses, including but not
limited to luxury accommodations and services unnecessary for, or unrelated
to the furtherance of Conservancy&rsquo;s charitable mission are not eligible for
reimbursement.</p>
<p>Any travel expense that adheres to this Policy is considered In-Policy
and does not require special approval, so long as the trip itself
has been approved in writing by Conservancy&rsquo;s Executive Director or
by a Project&rsquo;s Leadership Committee (&ldquo;PLC&rdquo;) in a regular and documented
PLC vote. Conservancy and/or a PLC can limit allowable travel expenses
to an amount less than what would otherwise be considered acceptable
according to this Policy. If so, the smaller budget is the maximum
allowed expense.</p>
<p>PLC&rsquo;s may, in fact, have their own travel policy that is more restrictive
than this one. Please consult the PLC for your Conservancy project before
incurring an expenses to ensure you understand what expenses can be
reimbursed.</p>
<h2 id="easy-reference-guide">Easy Reference Guide</h2>
<p>Travelers should adhere to the following guidelines to stay In-Policy.</p>
<h3 id="flights">Flights</h3>
<ul>
<li>
<p>Before you buy tickets, save a screenshot of a flight search that
shows the least expensive fare available from multiple airlines for
the dates you need to travel.</p>
</li>
<li>
<p>Book at least 14 days in advance.</p>
</li>
<li>
<p>Fares within $100 of that lowest fare you found are In-Policy, even if
you book on a different site or for different dates.</p>
</li>
<li>
<p>Fares over $750 domestically or $1,650 internationally require
Conservancy&rsquo;s pre-approval.</p>
</li>
</ul>
<h3 id="hotels_1">Hotels</h3>
<ul>
<li>
<p>Hotels are In-Policy as long as the average nightly rate you pay
(excluding taxes and fees) is under the maximum rate for lodging for your
destination. See the &ldquo;Rates&rdquo; section below for details.</p>
</li>
<li>
<p>Be sure the receipt from your hotel includes the dates of your
stay, not just a total.</p>
</li>
</ul>
<h3 id="receipts">Receipts</h3>
<p>Keep and submit PDFs of the following, as applicable:</p>
<ul>
<li>
<p>Your fare search (i.e., a screen shot)</p>
</li>
<li>
<p>Your plane and rail tickets (e-confirmation of purchase is sufficient)</p>
</li>
<li>
<p>Your hotel/lodging invoice</p>
</li>
</ul>
<h3 id="per-diem">Per Diem</h3>
<ul>
<li>
<p>Use your per diem to cover meals and incidental expenses.</p>
</li>
<li>
<p>Your total per diem allowance follows the rates published for your
destination. See the &ldquo;Rates&rdquo; section below for details.</p>
</li>
<li>
<p>Try to be frugal: per diem rates are rather generous.</p>
</li>
<li>
<p>When attending a conference where food is included, Do The Right
Thing and claim a lower per diem.</p>
</li>
</ul>
<h3 id="reimbursement">Reimbursement</h3>
<ul>
<li>
<p>To receive reimbursement, send transportation and hotel receipts,
along with a list of per diem days and totals, to
<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#97;&#99;&#99;&#111;&#117;&#110;&#116;&#115;&#45;&#112;&#97;&#121;&#97;&#98;&#108;&#101;&#64;&#116;&#105;&#120;&#46;&#115;&#102;&#99;&#111;&#110;&#115;&#101;&#114;&#118;&#97;&#110;&#99;&#121;&#46;&#111;&#114;&#103;">&#97;&#99;&#99;&#111;&#117;&#110;&#116;&#115;&#45;&#112;&#97;&#121;&#97;&#98;&#108;&#101;&#64;&#116;&#105;&#120;&#46;&#115;&#102;&#99;&#111;&#110;&#115;&#101;&#114;&#118;&#97;&#110;&#99;&#121;&#46;&#111;&#114;&#103;</a>. Refer to the Expense Report
section below for details.</p>
</li>
<li>
<p>Your complete reimbursement request must be submitted to
<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#97;&#99;&#99;&#111;&#117;&#110;&#116;&#115;&#45;&#112;&#97;&#121;&#97;&#98;&#108;&#101;&#64;&#116;&#105;&#120;&#46;&#115;&#102;&#99;&#111;&#110;&#115;&#101;&#114;&#118;&#97;&#110;&#99;&#121;&#46;&#111;&#114;&#103;">&#97;&#99;&#99;&#111;&#117;&#110;&#116;&#115;&#45;&#112;&#97;&#121;&#97;&#98;&#108;&#101;&#64;&#116;&#105;&#120;&#46;&#115;&#102;&#99;&#111;&#110;&#115;&#101;&#114;&#118;&#97;&#110;&#99;&#121;&#46;&#111;&#114;&#103;</a> within 90 days of the last date of
travel. Untimely requests <strong>will not be reimbursed</strong>.</p>
</li>
</ul>
<h2 id="rates">Rates</h2>
<p>Throughout this document, we refer to rates reported by other parties.</p>
<p>For travel in the United States, we follow the maximum rates for lodging and
M&amp;IE per diem set by the
<a href="https://www.gsa.gov/perdiem">US General Services Administration</a>.</p>
<p>For travel outside the United States, we follow the maximum rates for lodging and
M&amp;IE per diem set by the
<a href="https://aoprals.state.gov/web920/per_diem.asp">US Department of State</a>.</p>
<p>We calculate the total per diem allowance for a trip using the same method
as the GSA. Travelers may request up to 100% of the listed rate for each
full day of travel, plus 75% of the listed rate for each partial day of
travel. For example, if you fly to a conference on Monday, spend Tuesday
through Thursday at the conference, and return home on Friday, and the per
diem rate for the conference city is $80, you may request up to $360: $80
for each day Tuesday through Thursday, plus $60 for each day you flew.</p>
<p>When we convert currencies (e.g., to determine whether a hotel paid in Euros
was within the maximum lodging rate), we use the final rate published by
<a href="https://openexchangerates.org/">Open Exchange Rates</a> on the date we received
the reimbursement request. Please do not do your own currency conversions
in your reimbursement requests. Simply report expenses in their original
currency/ies, and we will convert appropriately. If you have questions or
concerns about our rates, just ask, and we&rsquo;ll be happy to provide details
before we send you final payment.</p>
<h2 id="reimbursement-procedure">Reimbursement Procedure</h2>
<p>Conservancy handles reimbursements on a NET-30 basis, starting from the date
that complete materials are received. If this is an issue, Conservancy is
available to prepurchase expensive items like airline tickets on your
behalf, so that you don&rsquo;t need to be reimbursed.</p>
<p>If you seek to be reimbursed for Conservancy Project expenses, please send
the following, in a self contained email (with attachments as necessary),
cc&rsquo;ing your Project Leadership Committee address (PROJECT@sfconservancy.org)
for Project approval:</p>
<ul>
<li>
<p>A brief paragraph explaining what was accomplished for the project
during your travel and/or with the funds being reimbursed. This can
be informal; it&rsquo;s just for our records to confirm the travel advanced
the not-for-profit mission of both Conservancy and the project.</p>
</li>
<li>
<p>A brief report listing the items to be reimbursed.</p>
</li>
<li>
<p>Full receipt(s) for everything, unless the travel policy does not
require receipts (e.g., for per diem expenses).</p>
</li>
</ul>
<p>Please verify that the receipts that you submit are within the attached
travel policy requirements. Note, however, that your Project Leadership
Committee may have set a stricter budget than what the general
Conservancy policy allows.</p>
<ul>
<li>
<p>How you&rsquo;d liked to be reimbursed. The four payment options, in order of
Conservancy&rsquo;s preference, are:</p>
</li>
<li>
<p>PayPal. For this, we need (a) the email address that is registered to
the PayPal account that will receive reimbursement and (b) the preferred
currency. (Please verify that PayPal
<a href="https://www.paypal.com/us/selfhelp/article/how-do-i-send-a-payment-in-another-currency-faq1555/3">lists your preferred currency as available before choosing one</a>.)
Note that sometimes PayPal charges fees. Usually we&rsquo;re taking funds
from our PayPal balance, which means no fees appear on our side, but
they may appear on yours. In our experience, USA PayPal account holders
physically in the USA are not typically charged fees; but we do advise
you to check PayPal&rsquo;s fee schedule before choosing this method.</p>
<p>NOTE: Typically, when choosing PayPal as a payment option, amounts owed
in USD will be paid in USD, regardless of your preferred currency
selection.</p>
</li>
<li>
<p>Issue you a check in USD from a USA bank, sent to you via post.
For this option, I just need your postal address.</p>
</li>
<li>
<p>Wire the amount in your local currency to your bank account in your
country. For this option, I need as much of the following information
as it&rsquo;s possible for you to collect.</p>
<p><strong>Required information</strong></p>
<ul>
<li>
<p>Full Name of the Account Holder</p>
</li>
<li>
<p>Full Address of the Account Holder</p>
</li>
<li>
<p>Account Number</p>
</li>
<li>
<p>Preferred Currency</p>
</li>
<li>
<p>Bank Name</p>
</li>
<li>
<p>Bank Address</p>
</li>
<li>
<p>Bank ACH or ABA routing number (for banks in the US);
or SWIFT and/or BIC code (for banks outside the US)</p>
</li>
</ul>
<p><strong>Additional required information by country</strong></p>
<ul>
<li>
<p>All countries inside the EU, and all wires in EUR &amp; XAF: IBAN</p>
</li>
<li>
<p>Australia: BSB or &ldquo;Bank Code&rdquo;</p>
</li>
<li>
<p>Brazil: IBAN; Tax ID of the Account Holder (your 14-digit CNPJ
or 11-digit CPF); Phone Number of the Account Holder;
and Bank Agency Code</p>
</li>
<li>
<p>LKR Currency: Bank Branch details</p>
</li>
<li>
<p>KES Currency: Bank Branch details</p>
</li>
<li>
<p>Cameroon: IBAN</p>
</li>
<li>
<p>Colombia: Tax ID of the Account Holder; and Phone Number
of the Account Holder</p>
</li>
<li>
<p>India: IFSC Code</p>
</li>
<li>
<p>Kenya: The name, address, and branch code of the local branch of your
bank where you hold your account</p>
</li>
<li>
<p>Qatar: IBAN</p>
</li>
<li>
<p>Russian Federation: Beneficiary INN; Patronymic Name of Beneficiary;
and VAT/VO Code of Beneficiary Bank</p>
</li>
<li>
<p>Ukraine: BSB or &ldquo;Bank Code&rdquo;; Tax ID of the Account Holder;
and Phone Number of the Account Holder</p>
</li>
<li>
<p>United States: Phone Number of the Account Holder</p>
</li>
</ul>
<p><strong>Additional information we can use</strong></p>
<p>Banks outside the US will often designate a Correspondent Bank when
receiving funds from the US. If you can give us the Correspondent
Bank Name and ACH, we can specify that in the wire. Your bank will
usually take the fewest fees when receiving wires from its
Correspondent Bank, so this will mean the most money for you.</p>
</li>
<li>
<p>A check in your local currency, sent to you via post. For this option, we
just need your postal address and what currency you want. Note that this
is a more involved option to process and will usually take at least 30
days to issue payment. We do not recommend this method. Please choose
it only if you absolutely cannot receive a wire transfer for some reason.</p>
</li>
</ul>
<p>Project Leadership Committees: when you see emails of this nature, please
be sure to have your designated Representative review the materials and
send an approval message to Conservancy.</p>
<h2 id="project-leadership-committee-review">Project Leadership Committee Review</h2>
<p>Conservancy foresees the need for periodic reasonable exceptions to
this Policy. Persons working on behalf of a specific Project seeking
an exception to this Policy must petition their PLC to obtain written
approval from Conservancy authorizing the exception. Persons working
directly on behalf of Conservancy seeking an exception to the
Policy must obtain written approval from Conservancy authorizing the
exception.</p>
<p>PLCs are responsible for creating procedures for requesting exceptions,
and submitting to Conservancy reimbursement requests associated with
their respective Projects. PLCs are also responsible for making available
a list of required response times for inquiries, including but not
limited to, the following two cases</p>
<ul>
<li>
<p>a specific number of days to respond to regular reimbursement requests,
and</p>
</li>
<li>
<p>a specific number of days to respond to pre-authorization requests.</p>
</li>
</ul>
<p>PLCs are also responsible for monitoring the available balance in their
Project Fund, and for granting or refusing approval for travel expense
requests based on an assessment of the funds available and of any
outstanding contracts payable. PLCs are not to approve travel expense
requests when their Project does not have sufficient funds to cover the
expense. If a PLC has any questions regarding whether their Project has
sufficient funds to cover a Traveler&rsquo;s expense request, the PLC should
contact Conservancy.</p>
<h2 id="transportation">Transportation</h2>
<h3 id="overall-transportation-cost">Overall transportation Cost</h3>
<p>Domestic transportation costs greater than US$750 requires Conservancy
approval prior to booking, even if all other Policy conditions have been
met. International transportation costs greater than US$1,800 requires
Conservancy approval prior to booking, even if all other Policy conditions
have been met.</p>
<h3 id="advance-purchase">Advance Purchase</h3>
<p>Tickets for travel by air or rail (excluding commuter train and subway)
should be booked at least 14 days in advance; any travel booked less than
14 days in advance requires written pre-authorization by Conservancy.
Tickets for travel by air or rail beyond 365 days in advance also require
written pre-authorization by Conservancy.</p>
<h3 id="air-travel">Air Travel</h3>
<h4 id="class-of-service">Class of Service</h4>
<p>Coach and/or Economy Airfare is the only acceptable class for all flights
(domestic and international) unless a PLC provides a special exception and
a valid reason (such as a need for business class due to a documented
medical reason) to Conservancy for written approval. Travelers may select
their airline of choice (e.g., for the purpose of collecting airline miles
and rewards), provided that the resulting fare otherwise meets the
requirements of this Policy. Travelers should not book out-of-Policy trips
(and thus pay a higher fare) in order to qualify for a mileage upgrade.</p>
<h4 id="advance-purchase_1">Advance Purchase</h4>
<p>Air travel should be booked at least 14 days in advance; any travel booked
less than 14 days in advance requires written pre-authorization by
Conservancy. Flights beyond 365 days in advance also require written
pre-authorization by Conservancy.</p>
<h4 id="low-fare">Low Fare</h4>
<p>Conservancy aims to balance cost savings with time savings and convenience.
Budgets for flights are set based on their travel time compared to the
flight with the lowest available fare. Flights with fares that are within
budget are in-Policy.</p>
<p>To find the lowest available fare, run a flight search that meets these
criteria, and save the results:</p>
<ul>
<li>
<p>The search must include fares from multiple airlines. Any
widely-recognized airfare search site that lists results from multiple
airlines is acceptable, including sites such as
<a href="http://orbitz.com">Orbitz</a>, <a href="http://kayak.com">Kayak</a> or
<a href="http://hipmunk.com/">Hipmunk</a>.</p>
</li>
<li>
<p>The search must cover only the dates of relevant travel. For example, if
you&rsquo;re attending a conference that runs Monday through Friday, the search
must have you arriving no earlier than Sunday, and leaving no later than
Saturday.</p>
</li>
<li>
<p>Except as allowed by Policy, the search must not use filters that might
exclude the least expensive fare. For example, you may filter out
flights with two or more connections, since Conservancy does not
consider those reasonable. However, you may not filter out specific
airlines, or flights without WiFi.</p>
</li>
</ul>
<p>Save the results of this search. A PDF printout of the first page of
results from your browser is ideal. A screenshot can work too. Just make
sure the output shows the search criteria and the lowest available fare.
When you send your reimbursement request, attach these results.</p>
<p>The budget for a flight is set depending on how its cost and travel time
compares to the flight with the lowest available fare. Travel time is
measured from the scheduled departure time of the first flight in the
itinerary to the scheduled landing time of the final flight. We use the
following table to determine the budget:</p>
<table>
<thead>
<tr>
<th>If the travel time for a flight is…</th>
<th>the budget for that flight is…</th>
</tr>
</thead>
<tbody>
<tr>
<td>the same or longer than the flight with the lowest available fare</td>
<td>the lowest available fare + US$100</td>
</tr>
<tr>
<td>less than three hours shorter</td>
<td>the lowest available fare + US$100</td>
</tr>
<tr>
<td>between three and six hours shorter</td>
<td>the lowest available fare + US$200</td>
</tr>
<tr>
<td>between six and ten hours shorter</td>
<td>the lowest available fare + US$350</td>
</tr>
<tr>
<td>at least ten hours shorter</td>
<td>the lowest available fare + US$600</td>
</tr>
</tbody>
</table>
<p>Any flight with a total cost that is within its corresponding budget is
within Policy. Any flight with a cost over its budget requires written
pre-authorization by Conservancy.</p>
<p>Travelers may book their tickets on different dates or a different site as
long as they used a qualifying fare search site to determine that the
booked flights are within Policy.</p>
<h4 id="reasonable-flights">Reasonable Flights</h4>
<p>Conservancy asks that Travelers allow for flexibility with respect
to departure times during a desired day of travel, as well as longer
trips in order to reduce cost. However, Conservancy does consider
flights with two or more connections as unreasonable and does not
expect Travelers to consider those flight options to be reasonable.</p>
<h4 id="excess-baggage">Excess Baggage</h4>
<p>Should a team member travel on an airline that charges for a single piece of
checked baggage, such a baggage expense is eligible for reimbursement with a
receipt. Team members are responsible for charges on any baggage beyond a
single piece, unless that additional baggage is materials specifically
related to the Project&rsquo;s and Conservancy&rsquo;s mission (i.e., bringing t-shirts
and other promotional materials to an event).</p>
<h4 id="out-of-policy-bookings">Out-of-Policy Bookings</h4>
<p>All air travel not adhering to the above Policies are considered Out-of-Policy
and require written pre-authorization by an officer of Conservancy.</p>
<h4 id="cancellation-fees">Cancellation Fees</h4>
<p>Cancellation fees and other penalties incurred result of a change
of plans are reimbursable at Conservancy&rsquo;s discretion. In general,
Conservancy shall reimburse such fees if the Traveler can submit a
valid reason for the change of plans. Acceptable reasons include Conservancy
and/or the PLC canceling or altering the trip or unexpected delays
in flight connections. In instances where these fees are incurred
without adequate explanation, Conservancy reserves the right to refuse
to reimburse the cost of the fees.</p>
<h3 id="other-transportation">Other Transportation</h3>
<h4 id="ground-transportation_1">Ground Transportation</h4>
<p>Ground transportation necessary as part of authorized Project trips
is considered to be a reasonable expense. Public ground transportation,
such as taxis, shuttles, buses and municipal transit, are generally
the most cost-effective options and are the standard for eligible
ground transportation reimbursements. All car rentals require pre-authorization
by the PLC or by an officer of Conservancy. When car rentals
have been pre-approved, the rental of compact cars is encouraged;
mid-size vehicles are authorized when necessary (e.g., when compact-sized
vehicles are not available or the number of passengers or volume of
baggage makes a compact vehicle impractical).</p>
<h4 id="rail-transportation">Rail Transportation</h4>
<p>Rail transportation as a means of travel for an authorized Project
trip is considered to be a reasonable expense. All rail transportation
must be in economy and/or coach class.</p>
<h4 id="use-of-personal-vehicles">Use of Personal Vehicles</h4>
<p>When circumstances require Travelers to utilize their personal vehicles for
Project purposes, they can be reimbursed at the current
<a href="https://www.irs.gov/tax-professionals/standard-mileage-rates/">USA IRS Standard Mileage Rate</a>,
plus any related parking expenses and toll fees. Drivers are encouraged to
find the lowest cost parking area reasonably near their destination.</p>
<h2 id="additional-days-of-travel">Additional Days of Travel</h2>
<p>Travelers often seek to add extra days before or after an approved trip
(e.g., the weekend before a conference). A Traveler may seek approval for
the expenses associated with an extended stay prior to booking the trip,
provided that the additional days are solely to enable a Traveler to
conduct work within the PLC&rsquo;s objectives and Conservancy&rsquo;s charitable
mission, or to get a particular airfare that <strong>reduces</strong> the overall cost of
the trip. Travelers may seek approval to book travel itineraries that
include extra days for personal reasons, so long as the cost of the flight
meets the other requirements of this Policy. Other expenses incurred
during extra personal days beyond transportation costs are not reimbursable.</p>
<h2 id="lodging">Lodging</h2>
<p>Travelers are expected to be cost-conscious and prudent when booking lodging
for approved trips, and to verify that rates are within the maximum lodging
rates for the hotel&rsquo;s location. See the &ldquo;Rates&rdquo; section above for details.</p>
<p>If the lodging chosen by the Traveler and/or the PLC exceeds the maximum
lodging rate for the given location (per Traveler), the Traveler and/or the
PLC <strong>must</strong> obtain written pre-approval from Conservancy and the PLC before
booking the hotel. If written pre-approval is not sought or is not granted,
Conservancy will only reimburse up to the maximum lodging rate.</p>
<p>Lodging documentation submitted as part of a reimbursement request must
include a copy of the hotel invoice detailing all charges (credit card
receipts <strong>alone</strong> are unacceptable). In particular, since Conservancy only
reimburses for room charges (plus relevant taxes and fees) for the necessary
travel dates, the receipt from the hotel must clearly show the dates of stay,
and separately list room charges and any food or service charges.
Conservancy will not reimburse Travelers for any costs associated with an
upgrade of room accommodations.</p>
<p>In some cases, Conservancy, upon consultation with the PLC, may decide to
book lodging on behalf of Travelers. In this case, Conservancy-booked
lodging is always considered In-Policy.</p>
<h2 id="other-reimbursable-expenses">Other Reimbursable Expenses</h2>
<p>Conservancy will reimburse persons for Project-related expenses that
are incurred while traveling on approved Project business and/or approved
Conservancy business. Only necessary, ordinary and reasonable expenses
are eligible for reimbursement, and only those categories of expenses
listed in this document qualify.</p>
<h3 id="meals-and-incidental-expenses">Meals and Incidental Expenses</h3>
<h4 id="overview_1">Overview</h4>
<p>Travelers can submit for a per diem for meals and incidental expenses for
every day of a trip devoted to Project- and/or Conservancy-related mission
work, including the day(s) of travel itself, up to the maximum rate for the
destination of the trip. See the &ldquo;Rates&rdquo; section above for details.</p>
<p>These per diem rates are the maximum daily rate Travelers can claim. If a
conference has provided food, or food is provided in some other form, or
the costs the Traveler incurs are lower than this rate, then the Traveler
should reasonably reduce their per diem claim.</p>
<p>PLCs and/or Conservancy have the authority to set lower per diem rates
than those generated by the calculators above. In those instances,
Travelers will only be able to submit for the lower per diem rates.</p>
<h4 id="group-meals">Group Meals</h4>
<p>For groups of Travelers on an In-Policy trip, each Traveler should
pay for his/her own meals, seeing as all participants will have an
opportunity to submit for separate per diem reimbursements after the trip.</p>
<p>For clarification purposes, this Policy does not relate to planned
group events that include meals and/or refreshments (e.g., a PLC-organized
conference that includes lunch for all attendees). Further, PLCs and/or
Conservancy retain the right to allocate a separate budget for anticipated
large group meals beyond the individual per diem limits of each Traveler,
provided that they are within the PLC&rsquo;s technical objectives and/or
Conservancy&rsquo;s mission. Travelers anticipating a need to cover such
a large group meal should seek pre-approval from his/her PLC and/or Conservancy
for such expenses before the trip.</p>
<p>For any such group meal, Conservancy will require a written paragraph
summary of the meeting, indicating what was accomplished for the Project&rsquo;s
and Conservancy&rsquo;s mission.</p>
<h4 id="meals-for-organizational-development">Meals For Organizational Development</h4>
<p>Travelers may occasionally have the need to invite third parties
(e.g., prospective donors, contributors, community members, etc.) to
meals in order to further a PLC&rsquo;s technical direction and/or Conservancy&rsquo;s
mission. Conservancy recommends that Travelers seek pre-approval from
their PLC and/or Conservancy for such meals.</p>
<p>For any such organizational development meal, Conservancy will require a
written paragraph summary of the meeting, indicating what was accomplished
for the Project&rsquo;s and Conservancy&rsquo;s mission.</p>
<h4 id="phone-call-charges-part-of-per-diem">Phone Call Charges Part of Per Diem</h4>
<p>Charges for personal phone calls (e.g., made from a hotel, or via
a mobile phone in international travel) are not reimbursable as an
expense separate from the allocated per diem.</p>
<h4 id="currency-conversion-charges-part-of-per-diem">Currency Conversion Charges Part of Per Diem</h4>
<p>Any fees associated with currency conversion are not reimbursable as an
expense separate from the allocated per diem.</p>
<h3 id="conference-registration-fees">Conference Registration Fees</h3>
<p>Conservancy will reimburse conference registration fees up to $100 per day
for Travelers on approved Project business and/or approved Conservancy
business. For example, a $250 registration fee for a 3-day conference is
In-Policy; however, a $225 registration fee for a 2-day conference is not.</p>
<p>Travelers seeking reimbursement for registration fees that exceed $100 per
day must obtain prior approval from an officer of Conservancy.</p>
<h3 id="internet-access">Internet Access</h3>
<p>Internet access/wi-fi fees charged by a hotel are reimbursable, provided
that they are listed on the hotel/lodging invoice submitted for
reimbursement. Other internet access fees (e.g., airport internet
services, personal wi-fi hotspots, internet cafes) are not reimbursable
except as incidental expenses to be covered by a Traveler&rsquo;s per diem.</p>
<h3 id="visa-fees_1">Visa Fees</h3>
<p>Conservancy will reimburse fees charged by an embassy (or any government
agency) that are mandatory for receiving a visa (or other permission) to
enter the final destination country of travel, provided proper documentation
of cost (such as a receipt, or a copy of the visa along with government
published rates).</p>
<p>Conservancy may reimburse other ancillary costs, such as use of a travel
expert agency for obtaining a visa, or additional domestic travel costs
necessary to obtain a visa, but all such other costs require prior approval
from Conservancy.</p>
<h2 id="non-reimbursable-expenses">Non-reimbursable Expenses</h2>
<p>Non-reimbursable expenses are identified throughout this policy. The
following items are typically non-reimbursable expenses:</p>
<ul>
<li>
<p>Partner, spouse, and/or companion travel</p>
</li>
<li>
<p>First class travel (unless medically necessary)</p>
</li>
<li>
<p>Upgrades to air travel, car rentals, or hotel rooms</p>
</li>
<li>
<p>Purchase of clothing, luggage, toiletries and other miscellaneous
personal items</p>
</li>
<li>
<p>Supplemental travel or car rental insurance</p>
</li>
<li>
<p>Fines, penalties, or legal fees</p>
</li>
<li>
<p>Personal entertainment or recreational expenses beyond the allotted per
diem</p>
</li>
</ul>
<p>Travelers are permitted to pay for their own upgrades, or use bonus
programs to upgrade Conservancy-reimbursed expenses. However, Travelers
must ensure that Conservancy does not receive nor reimburse any charges
for any such transaction.</p>
<h2 id="satisfaction-of-irs-requirements">Satisfaction of IRS Requirements</h2>
<p>Reimbursed travel expenses are subject to examination by the USA Internal
Revenue Service (IRS). Travelers are responsible for retaining documentary
evidence that all expenses are strictly for Project- and/or
Conservancy-related purposes, not personal in nature, and therefore not
includable as taxable income to the Traveler. Receipts are required for
all expenses, no matter the amount.</p>
<h2 id="approvals">Approvals</h2>
<p>Travelers traveling on behalf of a Project must seek approvals and
submit expense reports to their PLC. PLCs are to review those expense
reports and pass them along to Conservancy&rsquo;s accounting office for
final approval and reimbursement.</p>
<p>Travelers traveling on behalf of Conservancy must seek approvals from
Conservancy&rsquo;s Executive Director, and submit expense reports to
Conservancy&rsquo;s accounting office for reimbursement.</p>
<h2 id="expense-reporting">Expense Reporting</h2>
<p>Travelers seeking reimbursement must submit an expense report to the
appropriate channel with the following information:</p>
<ul>
<li>
<p>Name of Traveler</p>
</li>
<li>
<p>Brief description of trip and trip&rsquo;s purpose (e.g., &ldquo;August 2011
trip to XYZ conference for ABC project, served as planning committee
member&rdquo;; &ldquo;Feb. &lsquo;12 FOO hackfest in Portland, OR; contributed code&rdquo;)</p>
</li>
<li>
<p>A brief paragraph explaining what was accomplished for the project
during your travel.</p>
</li>
<li>
<p>Number of days traveled (with documentary evidence, e.g., conference
itinerary, etc.) and associated per diem</p>
</li>
<li>
<p>List of expenses not covered by per diem (e.g., transportation, lodging)
with substantiating receipts (or scans of receipts).</p>
</li>
</ul>
<p>In the event that it is impractical to obtain a required receipt and/or if
such receipt has been inadvertently destroyed or lost, the Traveler should
furnish a written statement to that effect, as well as an explanation of
the expenditure involved. When possible, secondary documentation (such as
a redacted credit card bill) should be provided instead of the
lost/destroyed receipt.</p>
<p>Any expense without a substantiated receipt and/or a supporting written
statement will not be reimbursed.</p>
<p>Conservancy requests that all expense reports be submitted within two weeks
of travel. Expense reports filed more than 90 days after the last day of
travel (or for other reimbursable expenses, the day expenses are incurred)
<strong>will not be reimbursed</strong>.</p>
<p>Reimbursements are paid by Conservancy on a NET-30 basis, from the
date of receipt by Conservancy of the fully complete report and supporting
documentation for the travel.</p>
<h2 id="consequences-of-policy-violations">Consequences of Policy Violations</h2>
<p>Failure to comply with this policy may result in the denial of, or delay
in payment for, reimbursement requests.</p>
<h2 id="policy-changes">Policy Changes</h2>
<p>The Conservancy reserves the right to change any terms of this Policy
from time to time. The Policy of record shall be the Policy most recently
distributed by the Conservancy. </p>
{% endblock %}

Some files were not shown because too many files have changed in this diff Show more