Compare commits

...

1067 commits

Author SHA1 Message Date
7f9629e78e update msa 2026-01-08 09:54:15 -08:00
5657a0fea3 update Bdale's bio 2025-12-30 17:49:47 -05:00
8b470b7b02 fix doubled match goal 2025-12-30 09:43:04 -05:00
97a8def665 update urgent box for fundraiser 2025-12-29 21:34:30 -05:00
ad9c95cb10 update 2025 match goal by 40,012 2025-12-29 15:38:59 -05:00
8e965ef5dc Correct link on added page of tentative ruling. 2025-12-29 08:52:18 -08:00
f7fe8e15ec uboot joins SFC 2025-12-29 11:36:33 -05:00
250d85ce10 Missing close parens on first page fixed. 2025-12-24 19:06:35 -08:00
28df311600 note to clarify that these are tentative rulings 2025-12-24 19:03:28 -08:00
772bfe0268 Update PDF file to include statement from website as well. 2025-12-24 18:40:11 -08:00
50efac292e Update link to file just renamed. 2025-12-24 08:09:57 -08:00
506d694e34 Rename file, missing '3' on the case number. 2025-12-24 08:08:49 -08:00
858b30dff9 Add item to Vizio lawsuit materials. 2025-12-24 08:04:27 -08:00
88752b7e99 Document local times in database 2025-12-15 14:33:39 +11:00
60aa8f3074 Update link so that my link on Fediverse to fundraiser is ✔ 2025-12-14 18:56:01 -08:00
fe6b070a14 Add umlaut to my name and link. 2025-12-09 17:18:22 -08:00
23a4e8ed48 add 2025-12-04 tentative ruling to vizio 2025-12-05 12:21:29 -06:00
4182e2ba9e add tentative ruling to frontpage and glossary 2025-12-04 12:17:34 -06:00
453d8d89c8 typo on frontpage 2025-12-03 09:53:41 -06:00
3dd0393e7d remove sage from staff page 2025-12-02 11:22:19 -05:00
c1d0d6f9ca fix match goal double 2025-11-26 09:45:49 -08:00
4115789633 add new tshirt 2025-11-26 07:49:24 -08:00
65043ffc09 fundraiser amount 2025-11-26 07:46:07 -08:00
c65e9c6498 Merge branch 'master' of f.sfconservancy.org:Conservancy/website 2025-11-26 07:43:41 -08:00
10c66a5d26 update frontpage with fundraiser notice 2025-11-26 07:43:27 -08:00
361112c3ad update frontpage with fundraiser notice 2025-11-26 07:41:34 -08:00
d33236ee44 Activate CY2025 end of year match drive. 2025-11-25 16:17:34 -08:00
4a75f11cac Also comment out the featured term. 2025-11-25 16:11:47 -08:00
eea188f43b Just comment out the announcement section for now. 2025-11-25 16:10:47 -08:00
a9c80b87ec update year in review for 2025 2025-11-25 14:23:07 -08:00
a048bbbb50 Change time in real-time. 2025-11-13 10:41:28 -08:00
Denver Gingerich
ee4b01b765 Vizio page: fix MSA link in 889b63a to use current 2025-11-13 09:35:44 -08:00
98e6d3e696 Make link directly to the page we're on. 2025-11-13 09:02:20 -08:00
3406efc4a8 Fix links from prior commit. 2025-11-13 08:58:58 -08:00
889b63a941 Announce Vizio hearing today. 2025-11-13 08:57:38 -08:00
Denver Gingerich
7e70a8080c Our Work menu: fossy.us less used now -> fossy.ca 2025-11-10 06:53:43 -08:00
175449492d Fix a minor typo and add more acronym tags in my bios. 2025-11-07 08:49:42 -08:00
5a2098d9e4 Kuhn ⇒ Kühn — I have changed spelling of my surname. 2025-11-07 08:39:51 -08:00
0c488616a2 Karen should be listed, not me. 2025-11-07 08:36:32 -08:00
b4b3738042 make more space for images. 2025-11-06 20:58:48 -08:00
3f094a273d Correct title. 2025-09-09 07:40:50 -07:00
Denver Gingerich
fc1ac7c1c5 Update Vizio trial date per today's hearing 2025-09-04 14:39:07 -07:00
26ef8d0b58 Add article about Codeberg and bots. 2025-08-16 15:40:55 -07:00
bd5757887c Improve alt text for GitUpGitHub logo. 2025-08-16 15:40:55 -07:00
Denver Gingerich
2f0cb1e165 Add SFC's yesterday reply re SFC MSA to Vizio page 2025-08-16 10:50:30 -07:00
5b787f149c Missing </a> 2025-08-15 14:43:14 -07:00
59b075152f Link and typo fix. 2025-08-15 14:42:46 -07:00
5609954aed Update top of transparency page. 2025-08-15 14:37:09 -07:00
8e36d4a3ce Wow, Gitea really doesn't have a FOSS offering anymore? 😲 2025-08-15 14:31:42 -07:00
e44e02570f Change intro line for GiveUpGitHub 2025-08-15 14:29:16 -07:00
a0e94aefef 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
c5ed189520 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
c54a7e07a3 More s/PastLawsuits/ImpactLitigationCopyleft/g 2025-08-15 14:18:25 -07:00
72e752e329 s/PastLawsuits/ImpactLitigationCopyleft/ 2025-08-15 14:16:55 -07:00
fcb452a02e Reorder and rename a few items on this menu. 2025-08-15 14:06:50 -07:00
07e788ddf5 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
f8ec56f2cb 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
38ff64ff80 s/CourtBattles/ImpactLitigation/g 2025-08-15 13:51:47 -07:00
860c01d929 Incorporate comments from Denver made in chat 2025-08-15 13:38:58 -07:00
87efd9ec2f A few typo fixes. 2025-08-15 13:16:01 -07:00
fda2eac0ec 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
5d55237ce5 Add MSA and trial continuation docs to Vizio page 2025-08-12 13:55:33 -07:00
d7651b2988 Fix header 2025-08-08 11:31:54 -07:00
4882c8c523 Correct trial date 2025-08-08 10:59:46 -07:00
Denver Gingerich
6306ace1bd Update Vizio trial date per recent order 2025-08-06 16:42:47 -07:00
07364388d0 Distinguished Service award fossy 25 and menu change 2025-08-01 12:54:36 -07:00
c2766c7d24 Fix <p> tags in the middle of the bio. 2025-07-26 17:12:24 -07:00
fe6b1a41af 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
f64553ad61 Really these should have all been &ndash; all along, not hyphens. 2025-07-26 17:05:15 -07:00
b0007e5589 More formatting minor fixes. 2025-07-26 17:03:37 -07:00
3b3562e337 Minor formatting changes. 2025-07-26 17:00:43 -07:00
42fe70b7c4 Fix typo 2025-07-26 16:58:18 -07:00
60afcd8364 Minor update to bio. 2025-07-26 16:54:00 -07:00
fc1d48db71 s/and/&amp; in title; fix &apos; various places. 2025-07-26 16:52:34 -07:00
406429ecd3 Update my bio in various ways. 2025-07-26 16:48:54 -07:00
1d4592c228 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
c767601717 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
4b34ae68ec Shorten title, so its more likely to be one line on frontpage 2025-07-26 14:01:49 -07:00
d4437aa791 Tighten language, mainly to make it look better on front page 2025-07-26 13:59:30 -07:00
c86a2c5909 Improve definition of “summary judgment” & make it “Featured Term” 2025-07-26 13:57:04 -07:00
6180b0efae Change featured item to Vizio travel grants. 2025-07-26 13:48:51 -07:00
Denver Gingerich
a8c9346d92 Add trial date to Vizio page, linking to news item 2025-07-24 21:18:56 -07:00
4a34746a97 Avoid sticky mobile header overlapping internal link targets 2025-07-24 14:39:56 +10:00
9700e2d908 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
13f1ca5d63 Fix previous Vizio changes on mobile
Was overflowing on a small screen.
2025-07-24 14:31:24 +10:00
059943b213 fix link to motion to remand 2025-07-23 12:23:50 -07:00
Denver Gingerich
1c66145b8b Update a few docket dates on the Vizio page 2025-07-23 11:34:37 -07:00
Denver Gingerich
db11a9f252 A couple Vizio changes for stylesheet consistency 2025-07-23 11:02:02 -07:00
32c34da6d5 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
1df88f052c 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
a9caa490f4 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
b74621e77e Additional fix for a Resources link on Vizio page 2025-07-22 22:29:34 -07:00
Denver Gingerich
ab9646cab7 Fix a couple Resources links on Vizio page 2025-07-22 22:26:56 -07:00
Denver Gingerich
57119bd776 Minor typo fix on Vizio main page 2025-07-22 22:15:06 -07:00
Denver Gingerich
94c5a9f43f Minor typo fix in Vizio template 2025-07-22 22:08:45 -07:00
Meredith Thompson
181bb0537f 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
dafb7c0871 Rename Font Awesome file to clarify it's a subset of the icon set 2025-07-23 13:40:54 +10:00
98170116c1 Another attempt at update of title on this file 2025-07-10 10:42:24 -07:00
7d7465d525 Use exiftool to correct metadata in recently added PDF documents 2025-07-10 10:06:39 -07:00
Denver Gingerich
f6bfc26386 Add/update MSA-related PDFs in Vizio docket detail 2025-07-10 09:44:29 -07:00
Denver Gingerich
5845e34953 Add SFC second MSA, etc., to Vizio docket summary 2025-07-10 08:47:56 -07:00
Denver Gingerich
ed2936bda1 Add some spacing to Vizio docket summary 2025-06-18 15:51:59 -07:00
Denver Gingerich
d4aefe1afb Fix formatting in Vizio docket summary 2025-06-18 15:48:50 -07:00
Denver Gingerich
2fb5453d3a Remove cruft, highlight Vizio trial date 2025-06-18 15:36:33 -07:00
c5dac078b9 add versity logo for use on fossy site 2025-05-28 12:11:45 -04:00
dd01db2551 update Sage's title 2025-05-05 10:47:58 -04:00
1e9ca38928 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
3afe09e102 try the autosizing again, I think this one should work? 2025-04-25 18:15:57 -04:00
e2939d4680 nope, that was bad 2025-04-25 18:13:41 -04:00
f29898e411 make some css tweaks to automatically size the logos correctly...I think? 2025-04-25 18:12:09 -04:00
5a68be71a4 add bloomberg engineering and codethink as sponsors 2025-04-25 18:00:07 -04:00
51c55b5924 change capitalization on id tag for xorg 2025-04-04 20:06:58 -04:00
c984ba5ed6 fix some formatting 2025-04-04 20:04:40 -04:00
842a604b19 add libssh & logo 2025-04-04 20:00:57 -04:00
823be2069a 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
00def35930 Upgrade Django to 5.1.6 2025-03-05 14:04:02 +11:00
a601360a9c openwrt-one: Avoid page scroll when clicking a thumbnail 2025-03-05 12:28:36 +11:00
7535a6d416 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
5254698f6d openwrt-one: Enable menu item 2025-03-05 12:12:36 +11:00
79bba9a641 Tune SQLite settings 2025-03-05 07:36:24 +11:00
751ca178fd openwrt-one: The bits I missed 2025-03-05 07:26:10 +11:00
378ab95043 openwrt-one: Apply Denver's feedback 2025-03-04 21:51:47 +11:00
27cfe80423 Add OpenWRT One mobile support 2025-03-03 19:22:24 +11:00
f0f7a4d003 Add mockup OpenWRT One page 2025-03-03 19:01:38 +11:00
262efcde56 Tweak docs 2025-02-21 19:27:41 +11:00
edd9d233bc 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
b638880376 add fossy 2025 prospectus 2025-02-20 12:06:59 -05:00
f97de1748d update fossy track submission deadline 2025-02-20 11:16:20 -05:00
407dff9450 liblouis and xorg 2025-02-11 22:41:53 -05:00
e7225e1160 Clarify instructions based on pono's feedback. 2025-01-17 07:55:03 -08:00
c79b7d97a0 Update README script to explain better how ./bin/deploy works. 2025-01-17 07:46:17 -08:00
c427712f14 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
d54412ccf3 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
cfac9ef0df image for exceeding fundraising goal 2024 2025-01-16 16:26:15 -08:00
e875c0f058 typo in link 2025-01-14 12:00:00 -08:00
812c68e673 update frontpage blurb for avm news 2025-01-13 14:43:43 -08:00
Denver Gingerich
d99edb1c19 copyleft-compliance: add AVM lawsuit details 2025-01-09 05:31:56 -08:00
Denver Gingerich
eaff39f090 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
f501f35607 add sages embroidery picture 2025-01-06 15:16:33 -08:00
3037520f87 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
ec2296ca8b supporters: Increase button border, add drop shadow and add grow animation 2024-12-21 10:17:14 +11:00
69a2b76d6f supporters: Add notice on PayPal page linking back to Stripe payment 2024-12-21 10:08:29 +11:00
47c505b0f8 update ux for sustainer button 2024-12-20 08:24:50 -08:00
528f5b8de0 Merge branch 'master' of f.sfconservancy.org:Conservancy/website 2024-12-19 15:23:51 -08:00
307b53e5c4 add Sourceware to YearInReview 2024-12-19 15:22:44 -08:00
a2cc7d0a83 supporters: Add recurring details to Stripe export 2024-12-18 10:20:49 +11:00
312de92892 contacts: Allow unsubscribes to be actioned from list view 2024-12-18 10:05:34 +11:00
7db683d53d supporters: Mention tax receipt in supporter email 2024-12-17 12:12:14 +11:00
158d70f1b0 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
5f6a3858a4 add john gilmore to sponsor list 2024-12-06 14:13:46 -05:00
Denver Gingerich
1dc548f0c3 Update Vizio trial date 2024-12-05 15:32:00 -08:00
c4fffcab10 Merge branch 'master' of f.sfconservancy.org:Conservancy/website 2024-12-04 05:36:17 -08:00
180f07cd2d display total for fundraising bar 2024-12-04 05:35:34 -08:00
9bf1ddd064 update tracy's bio 2024-12-03 14:50:43 -05:00
5aaef9126a small fixes for YiR 2024-11-26 14:06:55 -05:00
37ba306954 update language 2024-11-26 13:59:48 -05:00
0f6bbe350f fix openwrt in yearinreview 2024-11-26 13:57:11 -05:00
40b05a0662 2024 year in review 2024-11-26 13:22:29 -05:00
Denver Gingerich
6e5de830ad Update Vizio trial date 2024-11-25 21:00:52 -08:00
40da9cae5d Update SITE_FUNDGOAL setting for 2024 2024-11-26 09:07:05 +11:00
894f50556b remove northbaypython and racket 2024-11-25 13:22:02 -07:00
60e9171d8a openwrt one pcb picture 2024-11-25 10:46:00 -07:00
be62582d83 fossy 2024 osl panel picture 2024-11-25 10:25:37 -07:00
ba0c210909 Revert use of static tags for videos 2024-11-22 12:03:50 +11:00
74681bfaf3 Add 2024 T-shirt to Sustainers page 2024-11-22 12:00:30 +11:00
3c4d1afb2e supporters: Document "restricted API key" required permissions 2024-11-22 11:42:57 +11:00
efbdb90852 update yearinreview year temporarily 2024-11-18 14:46:01 -08:00
9833ad864f supporters: Handle Stripe sustainer renewals and ACH delayed payments 2024-11-15 19:36:24 +11:00
e0cd4aaf13 supporters: Make the new sustainers page live
I've temporarily hidden the quote for now.
2024-11-13 09:17:38 +11:00
479efc6dda Fix typo in CAPTCHA settings 2024-11-12 14:31:03 +11:00
c40a89e33e Reduce CAPTCHA noise a little 2024-11-12 14:21:50 +11:00
a7ab087387 Add recurring column to sustainers admin list 2024-11-12 14:15:38 +11:00
664d3f300d Add CAPTCHA to FOSSY track proposals form 2024-11-12 14:15:13 +11:00
5a6bff70cb supporters: Updated thanks page 2024-10-30 12:19:02 +11:00
ad154b219e supporters: Add Karen's tweaked no-JS text 2024-10-29 22:45:36 +11:00
3658ec9491 supporters: Note reasoning behind use of hosted checkout 2024-10-28 17:27:07 +11:00
b8214a2df4 supporters: Simplify and extend docs 2024-10-25 11:30:22 +11:00
a4f4c83809 supporters: Additional spacing after removing breadcrumbs 2024-10-25 10:16:53 +11:00
72e822ef60 supporters: Additional space above video on mobile 2024-10-25 10:14:08 +11:00
44c2dfd922 supporters: Remove breadcrumbs
I think best to remove any distractions from becoming a sustainer.
2024-10-25 10:10:27 +11:00
278c76e69f supporters: Use pointer cursor for amount selection buttons 2024-10-25 09:42:59 +11:00
3f2ebb66ec supporters: Don't escape email text 2024-10-24 18:04:27 +11:00
a298fc78ca supporters: Add sustainer confirmation email 2024-10-24 17:51:49 +11:00
718e25deaf 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
964e5a2741 supporters: Apply Black formatter 2024-10-23 18:16:47 +11:00
a483a4d1f8 supporters: Fix monthly amounts, validate minimum amount in frontend, update PayPal info 2024-10-23 18:10:43 +11:00
2acf8c60d3 supporters: Add PayPal template 2024-10-23 09:24:46 +11:00
05515d23d6 supporters: Consolidate alternative payment options 2024-10-22 23:52:35 +11:00
86e2415e73 supporters: Add sustainer form with pre-canned amount options 2024-10-22 23:52:35 +11:00
36b47c5f9d Fix some HTML validation issues 2024-10-22 23:51:37 +11:00
1e7224f01f Upgrade django-countries to support Django 5.1 2024-10-22 19:19:11 +11:00
98ff73f097 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
fa6a3caa95 Bring Stripe sustainer form into "Become a sustainer" page 2024-10-18 11:53:18 +11:00
db72b18e62 Add transparent background to T-shirt image 2024-10-18 11:53:18 +11:00
9e401911de update FOSSY track proposals for 2025 2024-10-17 13:24:48 -07:00
f3c7ffd102 update kallithea urls to forgejo 2024-10-16 20:34:04 -04:00
05f1e297a6 Add payment time column to Stripe export 2024-10-11 21:58:46 +11:00
d542a8c571 Record Stripe payment intent, export to CSV 2024-10-09 02:01:32 +11:00
196f57d853 Merge branch 'master' into sustainer-payment 2024-10-08 23:55:14 +11:00
f81bede42d 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
d77d80973f Use STORAGGES setting to avoid deprecation warning 2024-10-08 23:53:15 +11:00
2adb15eda0 Fix sustainer form default 2024-10-08 23:34:10 +11:00
65f311c06e Add annual renew 2024-09-30 17:40:29 +10:00
d71977ba27 Add prototype monthly recurring payment via Stripe 2024-09-18 15:34:59 +10:00
196baacc97 Django 4.2.16 security update 2024-09-05 09:36:39 +10:00
e821f43f5d Add prototype Stripe sustainer payment workflow 2024-09-05 09:35:24 +10:00
Denver Gingerich
9ca2c4f13a Add remaining Vizio documents from this year 2024-08-23 10:29:46 -07:00
086ced0623 usethesource: Add link to offer upload 2024-07-30 13:03:48 +10:00
33b40fb1d2 usethesource: Add admin interface 2024-07-29 23:44:40 +10:00
5cc22b2db4 usethesource: Add missing template 2024-07-29 23:33:58 +10:00
6a2ea41aa6 usethesource: Add prototype "upload offer for source" 2024-07-29 23:29:25 +10:00
546f78bc91 Fix trailing whitespace and missing end-of-file newline 2024-07-22 18:39:05 +10:00
d50a67a168 Fix flake8 warnings 2024-07-22 18:39:00 +10:00
c4525a5905 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
bb1efff6e7 Use {% static %} for home page video subtitles 2024-07-22 10:37:56 +10:00
ad1dd6d79a Update README - overview, licenses and Ansible 2024-07-22 10:32:41 +10:00
6aca985a75 Add default line-height to <li> elements
They currently look too tight compared with paragraph text.
2024-07-22 10:13:50 +10:00
5cbd688c3b Improve home page video layout 2024-07-19 21:39:45 +10:00
c6688be803 add cisco logo for tracy 2024-07-16 13:17:28 -04:00
8e26a3d1d8 Merge branch 'master' of ssh://k.sfconservancy.org/website 2024-07-10 11:53:42 -07:00
7c94a08aa9 add aws sponsor image
add aws sponsor
2024-07-10 11:52:50 -07:00
b72c151f8a add aws sponsor image 2024-07-10 11:32:12 -07:00
Denver Gingerich
f5cb1885cd Update Vizio trial date per today's hearing 2024-06-27 11:22:33 -07:00
Denver Gingerich
2825c50ac7 Update Vizio trial date/note; more updates to come 2024-06-15 15:53:08 -07:00
Denver Gingerich
f9e1645306 Fix What We Do -> FOSSY link per chat, to fossy.us 2024-06-14 11:30:24 -07:00
d90f8215c0 add sponsor per Tracy's request 2024-06-11 10:54:45 -04:00
b4b09b680a Handle excessively long paths 2024-06-06 18:07:05 +10:00
Denver Gingerich
ce27df3335 Remove links to historical-purposes-only documents 2024-05-28 16:09:10 -07:00
8fe600740b Add the minified version of tachyons.css 2024-05-13 18:25:27 +10:00
8929be7289 Update to-dos 2024-05-13 18:18:40 +10:00
678b094418 Add size to header logo 2024-05-13 18:11:37 +10:00
fe8e3ed621 Remove FIXME 2024-05-13 18:07:56 +10:00
8d20764b5a Disable Tachyons import line
This avoids an error during `collectstatic`.
2024-05-13 18:01:44 +10:00
4744d8c015 Switch to ManifestStaticFilesStorage for hashed URLs to static files 2024-05-13 17:55:54 +10:00
f94d5a1de5 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
84c378da0c 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
8d4509b258 Add some basic 200 OK smoke tests for key pages 2024-05-10 12:12:04 +10:00
6af885985c 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
e37e024e7d Fix tests following content move 2024-05-10 11:39:41 +10:00
c58ba95093 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
4d6e2460d7 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
e641660f1d Convert further jQuery to plain JS 2024-05-09 15:43:53 +10:00
7adea02e1a Fix JS error 2024-05-09 14:10:10 +10:00
828d2179e3 Further split up the supporter JS into functions 2024-05-09 14:06:39 +10:00
b15c96e25a 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
232452fa9a Fix shirt size for monthly an annual renew 2024-05-08 18:05:27 +10:00
f6299e1686 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
dc005dcf07 Add "use strict" on JS 2024-05-07 11:00:14 +10:00
a664dee8c6 Fix lint warnings 2024-05-07 10:59:46 +10:00
0e5499ad92 Begin jQuery removal 2024-05-07 10:46:34 +10:00
6c693535ea Set ownership during deploy 2024-05-07 09:48:36 +10:00
a9ff670fb7 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
bc1912853f podjango: Use feed title from database 2024-04-26 16:33:55 +10:00
54a3e02d2f Move media to top-level directory 2024-04-26 16:26:51 +10:00
3485926915 podjango: Configure uploaded media directory 2024-04-26 16:13:00 +10:00
1969478a69 podjango: Upload icon per podcast 2024-04-26 16:07:20 +10:00
352aaf2bd2 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
5efe14b5cf podjango: Combine templates into a single directory 2024-04-25 15:29:10 +10:00
33c2e373f9 podjango: Remove incomplete "query" view/URLs 2024-04-24 17:49:26 +10:00
20d4d460a5 Fix lint warnings 2024-04-24 17:38:22 +10:00
Paul Visscher
8a1074216f update date 2024-04-16 16:09:25 -04:00
de5491fea7 contacts: Add field to represent the mailout the unsubscribe came from 2024-04-10 16:18:51 +10:00
c2e6c58324 contacts: Allow email via POST or GET parameters 2024-04-09 23:06:52 +10:00
ff689d35ef 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
4848b76dba touch up fossy proposal page 2024-03-29 09:20:08 -07:00
1b3c0fb1c4 better picture of SMSU and update submission date 2024-03-28 13:11:45 -07:00
73cbaa53c3 Update .gitignore for moved secrets file 2024-03-22 12:21:34 +11:00
f9bac64230 Note to-dos 2024-03-22 12:18:03 +11:00
f78eb4ae47 Add Vizio summary judgement 2024-03-22 01:16:30 +00:00
313eabca75 Remove unused static/error templates 2024-03-22 11:23:19 +11:00
106a2f7382 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
7d6a3fa13b Defer JavaScript loading
This avoids waiting for the JS to download before rendering the page.
2024-03-22 10:39:06 +11:00
ffcf016336 Specify encoding for templates in case it's not the default 2024-03-22 10:10:57 +11:00
c52b91e183 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
255b11884d 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
3f03afccdc Fix typo 2024-03-21 13:54:49 +11:00
97bb006870 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
d49114f489 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
f353f53ee1 Set USE_TZ = False to avoid default changing in Django 5 2024-03-21 09:53:19 +11:00
3c80654914 Use decorator syntax to register admin handlers
Same-same, just marginally neater.
2024-03-21 09:35:00 +11:00
278ee71546 Remove unused CCS upload template 2024-03-20 17:10:32 +11:00
3d36079ef7 Move copyright assignment templates into Django app 2024-03-20 17:10:16 +11:00
5fb6b396d2 Remove unnecessary admin.autodiscover()
Since Django 1.7 this is done automatically.
2024-03-20 17:01:10 +11:00
7573c7eb4d Rearrange urls.py to distinguish the content pages 2024-03-20 16:51:28 +11:00
6717a83d4e Remove unused /coming-soon.html page 2024-03-20 16:45:49 +11:00
4d92711e75 Fix tests 2024-03-20 16:25:02 +11:00
7f44ed9a22 Drop djangocommonsettings.py from ignored files 2024-03-20 16:03:38 +11:00
38af378c95 Add linkcheck script 2024-03-20 15:54:18 +11:00
8963dc916e Handle trailing slashes in static content 2024-03-20 15:45:46 +11:00
99a2271f09 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
3f60267187 Move secrets.json to top-level 2024-03-20 14:42:10 +11:00
fd8009adbd 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
32c5b85cfa 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
35290d960c Update bin/deploy to use production settings 2024-03-20 14:18:46 +11:00
f6964cfced Specify the production settings in wsgi.py 2024-03-20 14:15:20 +11:00
a3df1d7094 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
b56f789886 Remove duplicate date_within template tag 2024-03-19 22:20:13 +11:00
51b5db4cc6 Add missing migration 2024-03-19 22:14:55 +11:00
53d6851509 Upgrade to Django 4.2 LTS 2024-03-19 22:14:20 +11:00
80e516ee71 Remove deprecated ifequal and ifnotequal tags
These have been replaced by `{% if x == y %}` type tags.
2024-03-19 22:01:53 +11:00
e69c44e741 add AlliterativeAdvising logo 2024-03-18 13:23:58 -07:00
02406c01fc Fix /fossy/community-tracks/ 2024-03-18 18:47:39 +11:00
d03167ccd9 Convert remaining url routes to path/re_path 2024-03-18 18:38:30 +11:00
36759236c8 Switch main urls.py to use path 2024-03-18 18:24:31 +11:00
703c08f8b4 Switch from url to re_path for static views 2024-03-18 18:17:09 +11:00
1ec61a5f07 Fix contractpatch urls 2024-03-18 18:03:15 +11:00
71fdab5c6e Tidy-ups 2024-03-18 17:59:56 +11:00
cc938b7661 Switch from url() to path()
Path is the new way to handle simpler routing rules.
2024-03-18 17:51:33 +11:00
8f000c8196 update fossy track proposal submission 2024-03-17 10:56:33 -07:00
78cca39d09 change mentions of first on fossy landing 2024-03-17 09:57:40 -07:00
d
ba6a7297fe fossy 0224 update! 2024-03-16 11:01:02 -07:00
95fd31916d 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
abec4616a5 usethesource: update disclaimer per SFC public MUC 2024-03-15 14:31:27 -07:00
52836d4c9b usethesource: Add some space between comment name/date and text 2024-03-15 19:41:54 +11:00
3df0feba01 usethesource: Allow comments to be attributed to non-account holders 2024-03-15 18:49:48 +11:00
3f29c25199 usethesource: Add candidate option to show/hide download disclaimer 2024-03-15 18:39:49 +11:00
089bbb9d86 usethesource: Add checkbox to opt-out of posting comment to mailing list 2024-03-15 18:21:59 +11:00
a7291bf030 Document the new deployment approach
Also mentioned linkchecker.
2024-03-13 15:55:00 +11:00
b38199dfbd Remove conservancy-www-update timer-based deploy 2024-03-13 14:50:48 +11:00
9127d01317 Prevent test giving false-negative if settings.py moved 2024-03-13 14:45:36 +11:00
fc4e61c550 Rename bin/deploy.sh to bin/deploy 2024-03-13 14:26:41 +11:00
1afac48c60 Switch content tests to pytest 2024-03-13 14:26:01 +11:00
994d58ddf6 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
54cbcdbacc usethesource: delete moot timeline on CCIRT page 2024-03-12 17:27:04 -07:00
Denver Gingerich
d6ec167411 usethesource: long waits are over, so delete note 2024-03-12 16:51:52 -07:00
21c7d404a6 Update the path to templates in index() 2024-03-06 19:02:00 +11:00
d443376fc7 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
10bfc66322 podjango: Add The Corresponding Source logo to feed 2024-03-06 17:34:48 +11:00
1fefacc3e3 usethesource: Add missing migration 2024-02-27 19:10:04 +11:00
4a28802a55 fossy: Add date hierarchy in admin 2024-02-27 19:09:48 +11:00
853f4cf50d fossy: Add created_time to CommunityTrackProposal model
Also move templates into app.
2024-02-27 19:01:31 +11:00
a6ff881548 Fix broken video links 2024-02-27 10:27:25 +11:00
c9c1cd710b Fix mistaken rename
I meant to rename the deploy script, not the deploy directory.
2024-02-27 10:23:18 +11:00
a112ecd0ed Load images via staticfiles 2024-02-27 10:19:38 +11:00
03ce063e23 Load favicon via staticfiles 2024-02-27 09:50:07 +11:00
0b0db395fd Push to remote first during deploy 2024-02-27 09:43:07 +11:00
324eab9191 Similarly load CSS via Django staticfiles app 2024-02-27 09:34:11 +11:00
8feb03ba69 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
7626344cc3 Remove reference to old jQuery
This was 404ing anyway.
2024-02-27 09:22:08 +11:00
48e26e7062 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
cdd7ee7db1 poddjango: Further lint fixes 2024-02-23 15:06:59 +11:00
db92f576fb podjango: Fix linting warnings 2024-02-23 15:02:04 +11:00
167a8f67f2 podjango: Use or_ instead of lambda
Easier to read.
2024-02-23 15:01:01 +11:00
c53d269b42 Remove unused ccs-upload feature
Use the Source uploads now go to a NextCloud anonymous upload.
2024-02-23 14:51:04 +11:00
5ed6d33f8d update path -- website/systemd is now website/deploy/systemd 2024-02-13 10:51:04 -05:00
09b064d5fa Add FY2022-23 Form 990 to website 2024-02-13 07:41:11 -08:00
411a96b41b Add FY 2022-23 audit report; update transparency page accordingly 2024-02-13 07:16:56 -08:00
b1761a3cf6 Add "The Corresponding Source" to menus 2024-02-09 23:05:54 +11:00
1125e278f3 podjango: Pluralize to /casts/ 2024-02-07 14:29:35 +11:00
e806af4966 podjango: Shorten feeds links 2024-02-07 14:25:45 +11:00
d6a499f1de podjango: Remove FaiF reference 2024-02-07 14:23:55 +11:00
6d015df9d7 podjango: Comment out itunes link pending update 2024-02-07 14:19:28 +11:00
9a2071e3d2 Move /cast/ to /cast/the-corresponding-source/
This makes room for addition of other podcasts later.
2024-02-07 14:19:28 +11:00
9442c99809 Change to SFC contacts. 2024-02-06 19:15:43 -08:00
ae00e8dc48 Fill paragraph, no changes otherwise. 2024-02-06 19:13:38 -08:00
2a89a66ea4 podjango: Temporarily filter out episodes prior to 2024 2024-02-07 11:03:56 +11:00
d6713357f5 Move ALLOWED_HOSTS into local settings (djangocommonsettings.py) 2024-02-06 21:59:31 +11:00
239cebbd8a Remove commented out XViewMiddleware 2024-02-06 21:58:36 +11:00
208f067c40 Remove DEBUG = False as it's the default 2024-02-06 21:52:59 +11:00
2ba7eb1609 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
607c2debaf Move deployment-related systemd config into "deploy" subdirectory 2024-02-06 21:39:18 +11:00
Denver Gingerich
500e6fbe56 usethesource: candidate rounds explainer sentence 2024-02-04 23:04:39 -08:00
Denver Gingerich
1e5128b8bf usethesource: clarify when/where comments posted 2024-02-04 23:03:31 -08:00
Denver Gingerich
129306f56b usethesource: update blog post refs on CCIRT page 2024-02-04 22:45:24 -08:00
Denver Gingerich
3dc0c218e2 usethesource: capitalize "the" (mostly What We Do) 2024-02-04 22:34:43 -08:00
b8167476b1 usethesource: Add "See more" link 2024-02-05 11:15:23 +11:00
Denver Gingerich
15a114e2a5 usethesource: update SFC front page top right tile 2024-02-02 23:07:41 -08:00
Denver Gingerich
df5ec28875 usethesource: add link to blog post on CCIRT page 2024-02-02 22:57:01 -08:00
Denver Gingerich
40282ccb7e usethesource: add to What We Do - getting real! 2024-02-02 21:50:20 -08:00
Denver Gingerich
4df4fd391d usethesource: use production mailing list now 2024-02-02 20:44:17 -08:00
Denver Gingerich
2016e49fb2 usethesource: submission guidelines fix, CCIRT lnk 2024-02-02 20:09:52 -08:00
Denver Gingerich
a21c98ee53 usethesource: fix second CCIRT image link, ongoing 2024-02-02 19:51:07 -08:00
Denver Gingerich
8693ea64ab usethesource: thanks, Tracy for the CCIRT diagrams 2024-02-02 19:45:49 -08:00
Denver Gingerich
eae3567fc7 usethesource: fix plurality of OSPO abbr in CCIRT 2024-02-01 22:16:55 -08:00
Denver Gingerich
b2e29dd0ea usethesource: fix end tag for OSPO abbr in CCIRT 2024-02-01 22:16:03 -08:00
Denver Gingerich
8bb7cb8884 usethesource: add OSPO abbr in CCIRT process page 2024-02-01 22:14:06 -08:00
Denver Gingerich
b6bc9a56cb usethesource: linkify email addr in CCIRT process 2024-02-01 22:12:42 -08:00
Denver Gingerich
d1678cd863 usethesource: add AoE abbr's to CCIRT process page 2024-02-01 22:06:57 -08:00
Denver Gingerich
21e0ee3396 usethesource: HTML-ify CCIRT process paragraphs 2024-02-01 22:01:52 -08:00
Denver Gingerich
a14a8dafbb Use The Source: add initial CCIRT text 2024-02-01 21:59:35 -08:00
f6e46ba728 Improve Docker docs 2024-02-02 13:38:27 +11:00
ebc531edd2 usethesource: Add placeholder for CCIRT process 2024-02-02 12:48:48 +11:00
f26d53e892 usethesource: Update "Submit a Candidate" text 2024-02-01 16:05:05 +11:00
98d8a625c0 usethesource: Add line breaks and linkifying to landing page descriptions 2024-02-01 12:12:15 +11:00
6bd16754f2 usethesource: Fix bold 2024-02-01 12:09:36 +11:00
326c3197de usethesource: Update intro text and comment spacing 2024-02-01 12:06:49 +11:00
20b5b1bf9e usethesource: Linkify URLs in description and comments, retain line breaks 2024-02-01 10:37:31 +11:00
412d177add usethesource: Add link to mailing list 2024-02-01 10:22:23 +11:00
aedfe57f89 usethesource: Reword "source candidate and firmware image" in email 2024-02-01 10:10:05 +11:00
57da268a31 usethesource: Add comment time field 2024-02-01 10:05:11 +11:00
34017ed2c0 usethesource: Fix typo in email signature 2024-01-31 12:33:47 +11:00
542bb9ea55 usethesource: Make email addresses configurable 2024-01-31 12:28:45 +11:00
073e777661 usethesource: Add button icons 2024-01-31 12:28:37 +11:00
3fda8f1f14 usethesource: Add menu item (commented out for now) 2024-01-31 11:10:38 +11:00
9ec7ea24bf usethesource: Tweak margins 2024-01-30 23:24:18 +11:00
6589843b40 usethesource: Page titles, big buttons, sub-headings & edit link 2024-01-30 23:19:42 +11:00
816ae6b82a Email announcement about new UTS candidate 2024-01-26 17:49:03 +11:00
26a499a56f Mirror UTS comments to an email list 2024-01-26 16:47:06 +11:00
Denver Gingerich
e400baf913 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
5818603321 usethesource: Add link to upload form, extra instructions 2024-01-19 16:34:27 -08:00
41c60551fe typo in glossary 2024-01-18 08:33:24 -08:00
dc257a68e0 add id to sustainers on sponsors page 2024-01-17 11:17:16 -08:00
b472419293 add Christoph Hellwig as sponsor 2024-01-16 13:11:31 -08:00
f4a1ada843 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
00a49ec2bc 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
24ba383db6 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
02a80cde7b fix ifixit link on sponsors page 2024-01-15 16:21:48 -08:00
7469a3ad11 Correct narrative text to match current situation & typo fixes 2024-01-07 19:19:34 -08:00
bbcab5baa0 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
f3b9134bdd order denying vizio msj 2023-12-29 12:05:49 -10:00
47a1d6bda1 add MSA link to vizio page 2023-12-29 10:38:41 -10:00
657fe6e698 Correct typo, improve copy while I was at it 2023-12-16 09:40:55 -08:00
bb38bd1546 put travel policy amendment up top 2023-12-15 07:03:41 -10:00
840c32bcea add some 2023 sponsors 2023-12-14 11:55:24 -10:00
ac1de09f5c update travel policy policies.git 2023-12-13
commit b78549cbc630463374e2bd50db187eedda9b75bd
2023-12-13 12:57:48 -10:00
51b8667ffc change Exit Zoom to fundraising text on frontpage 2023-12-11 10:59:19 -10:00
7ad7250292 Add SFC's motion for summary adjudication filed this week 2023-12-08 11:37:34 -08:00
a14311c495 Add PDF of our reply comments to Copyright Office on Generative AI 2023-12-08 11:36:01 -08:00
72636448f8 add amicus curiae as featured term and to glossary 2023-12-07 10:08:08 -08:00
24acd52680 add dmca amicus brief 2023-12-06 14:10:28 -08:00
18f3d7dbe1 add dmca renewal info to YearInReview 2023-11-28 13:21:25 -08:00
47d3e54aa9 bump default donation amount without changing sustainer level 2023-11-27 12:06:29 -08:00
17caea4ac6 Drop the unused /admin/doc/ route 2023-11-27 19:42:29 +11:00
072bfd8a1d 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
39e0e069a3 Add docs to enable conservancy-www-db.path 2023-11-25 13:41:55 +11:00
7e846d875a 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
56cb31c06d change text to be clearer about public acknowledgement 2023-11-24 10:50:29 -08:00
69a793049c Add linkchecker Systemd service and timer
Doesn't yet email report of errors.
2023-11-24 10:49:45 +11:00
5c182362ff Add conservancy-www-db.service to repository, document Systemd services 2023-11-24 10:01:34 +11:00
3000a117a0 Add to-do item for decoupling conservancy-www-db service from apache 2023-11-24 09:35:33 +11:00
b6611975f6 Rename 2018_Josh-triplett.jpg 2023-11-24 00:30:49 +11:00
d9dc36c1a0 Add missing 2018_Josh-triplett.jpg 2023-11-24 00:19:09 +11:00
2c0278cc5f Add missing jwf-headshot.jpg image 2023-11-23 23:50:33 +11:00
d2705edc53 Remove duplicate FOSSY page 2023-11-23 23:01:44 +11:00
f1bf9ae4ef Add missing occ.jpg 2023-11-23 22:56:04 +11:00
633e96b1ec 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
d3d40887e1 update tshirt for 2023 2023-11-22 07:37:59 -08:00
af80e1411f Fix the sustainer page expanding sections when no URL fragment provided 2023-11-22 22:17:59 +11:00
dba99b0ee2 Note to-do item to improve sustainer page interactivity 2023-11-22 14:00:09 +11:00
a4eeab1835 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
09c9364486 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
f086cecedf change footer from twitter to X 2023-11-21 15:03:08 -08:00
146a5a5534 revert tshirt to 2022 2023-11-21 14:37:55 -08:00
838ce2d9e8 change compliance language for yearinreview 2023-11-21 11:36:05 -08:00
47bfe5ab69 fix formatting for intro thumbnail 2023-11-21 11:11:22 -08:00
b1a5abfbde update tshirt design 2023-11-21 11:00:37 -08:00
7c3e1b04bc remove godot and add sourceware donate button 2023-11-21 10:14:06 -08:00
401e5953a3 add bbb acount instructions to yearinreview 2023-11-21 08:43:52 -08:00
74c47f9231 update dollar value for FOSS development 2023-11-21 07:58:12 -08:00
6642d831de fixes for yearinreview and add outreachy 1000th pic 2023-11-21 06:52:21 -08:00
05d8ab5bd8 add pictures to yearinreview 2023-11-20 14:38:41 -08:00
9e8cdb2edf add rick and pauls bios to site 2023-11-20 14:28:44 -08:00
70087dbe1a update fundraiser goal to cy2023-end-year-match 2023-11-20 14:13:20 -08:00
8fe9ac71d5 update outreachy 2022/23 numbers for YIR 2023-11-20 09:28:31 -08:00
1eca20cd95 update YearInReview for 2023 fundraiser 2023-11-20 07:33:07 -08:00
e3d5037c60 usethesource: Simplify the promissory wording 2023-11-11 12:46:43 +11:00
90e8b51b61 usethesource: Require agreement to download 2023-11-10 16:35:46 +11:00
fb559c7669 add vizio pdfs to gitignore, they are on webserver 2023-11-02 11:37:41 -07:00
d874bfc1ac usethesource: Remove "tirelessly" 2023-11-02 08:40:41 +11:00
92b26e7a28 Apparently, someone moved the files from here without documenting it? Hopefully in right place now 2023-11-01 07:57:52 -07:00
193af46104 Comments for Copyright Office Docket 2023-6 2023-11-01 07:40:09 -07:00
731ec4f502 congrats to Allison and Laura for title upgrades :) 2023-10-31 10:13:50 -07:00
a15fd3c4b3 usethesource: Add "ordering" field to determine candidate sort order 2023-10-31 09:31:28 +11:00
00305750f9 usethesource: Emphasize "Use the Source" 2023-10-31 09:19:26 +11:00
b8f8b573bf usethesource: Updating landing page intro text 2023-10-31 09:09:55 +11:00
744c47334c Update to-dos 2023-10-26 13:24:17 +11:00
76128ca8f3 Extend docs for local development and production deploy 2023-10-26 13:22:45 +11:00
39feaa95b9 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
19179d018f Remove CONSERVANCY_SECRET_KEY
Use SECRET_KEY instead to minimise use of non-standard settings.
2023-10-26 13:09:50 +11:00
39d599cd55 Add .dockerignore to ignore everything except requirements.txt 2023-10-26 12:44:23 +11:00
f7d529b5a7 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
d9f41f5598 Update and document Dockerfile 2023-10-26 12:31:52 +11:00
fbbdc69392 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
4e06014a82 usethesource: Fix header image path 2023-10-25 23:04:59 +11:00
f2e1186bdc Apply directory changes to update script 2023-10-25 22:56:44 +11:00
01f77f8ee1 usethesource: Add stars banner image 2023-10-25 22:51:45 +11:00
5da20144d5 Update .gitignore to reflect directory structure changes
Also removed some unused ignore lines.
2023-10-25 16:55:40 +11:00
8aecb7f98f Update wsgi.py to reflect directory structure changes 2023-10-25 16:28:57 +11:00
49ab5aafb4 Rename "www" directory to "conservancy" 2023-10-25 13:01:21 +11:00
fa7f227318 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
6055cf536d usethesource: Add data models, admin and frontend comment editing 2023-10-25 00:00:14 +11:00
b75139c025 Add Use the Source mockup pages
This doesn't include any data models yet.
2023-10-25 00:00:14 +11:00
49b3e46615 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
1016e64ecb Add Apache proxy and proxy-http modules 2023-10-24 13:55:19 +11:00
3faf3beaf6 Remove unused conservancy_wrapper files 2023-10-20 17:37:17 +11:00
74fc688dbf Remove unused modpythoncustom.py
We have used mod-wsgi for many years.
2023-10-20 17:34:07 +11:00
22eb13bbb1 Fix podjango migrations
Required an updated following code restructuring.
2023-10-20 17:05:35 +11:00
2b5364f4f7 Move fundraising goal banner into a template include 2023-10-20 12:47:58 +11:00
6c1aec16c8 Fix indentation in settings and urls modules 2023-10-20 12:47:30 +11:00
0a5383c28d Further switch to relative imports 2023-10-20 09:54:35 +11:00
024b6e1122 Sort Python imports with isort 2023-10-20 09:52:39 +11:00
7f7be02379 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
9a5410c307 update frontpage featured term language 2023-10-19 06:54:06 -07:00
1cd1cfcd58 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
e66899982a podjango: Link up "The Corresponding Source" title
This helps with navigating back to the home page.
2023-10-19 17:49:57 +11:00
90ad65f568 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
41c83091ff 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
b89d2e13f7 Fix links to forms.css, remove links to unused jquery-ui.css 2023-10-19 16:49:13 +11:00
e74cad9276 podjango: Fix duplicate URLconf entry for "all oggasts" 2023-10-19 16:00:17 +11:00
60ae457e45 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
90e672ffcb 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
9e05e2743a Update podcast feed title 2023-10-13 12:47:49 +11:00
ca58b1930d Update podjango model __str__ methods for newer Django 2023-10-13 12:44:28 +11:00
58eafab717 Automatically generate feed enclosure URL prefix 2023-10-13 12:41:20 +11:00
c815a9c176 Rename podcast to "The Corresponding Source" 2023-10-13 09:45:38 +11:00
9d61f17d32 Remove hard-coded faif.us domain from feed enclosure URLs 2023-10-13 09:45:38 +11:00
a7b2669fb8 update vizio case pages and menus 2023-10-12 12:15:22 -07:00
b25b0f4192 fix file names for transcript 2023-10-12 12:12:37 -07:00
0c5ec8e735 update vizio portions of website 2023-10-12 10:54:11 -07:00
48d054f028 Configure mounting of /var/www/media 2023-10-12 11:52:40 +11:00
433bfd5765 Fix MP3 feed 2023-10-12 11:51:15 +11:00
461d809a8a podjango: Remove unused code and templates 2023-10-10 22:05:38 +11:00
7cb9bb1c5c Fix further podcast links, remove unused base template and CSS, improve layout 2023-10-09 12:50:42 +11:00
ff0e8d9dcf Similarly don't serve header logo from staticfiles 2023-10-06 16:53:27 +11:00
a391bfc6e6 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
1ec94ab220 Remove default AUTHENTICATION_BACKENDS setting 2023-10-06 16:37:17 +11:00
34e16f55fd Namespace podjango static files, use includes to reduce duplication, enable staticfiles app 2023-10-06 16:35:36 +11:00
b5bbf5aa47 Add FOSSY menu item to "What we do" menu 2023-10-05 22:12:16 +11:00
b5c2f4d8e5 Use reverse URL generation for detail view 2023-10-05 22:07:34 +11:00
e6b6878659 Fix broken template tag 2023-10-05 20:38:35 +11:00
5ae861dd60 Fix reference to podjango detail template 2023-10-05 20:29:12 +11:00
6426c9de06 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
22da921444 Update template BASE_DIR now settings have moved in a directory 2023-10-05 17:45:36 +11:00
e80b30492e 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
92e2f38b7a 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
032acbe781 Remove documentation reference to unused djangopw module
Code appears to have been removed some time back.
2023-09-20 12:29:51 +10:00
5b78413866 Document the CDN setup for hosting videos 2023-09-20 12:28:43 +10:00
52c2a3cc0f Remove older Debian Dockerfiles 2023-09-15 21:59:00 +10:00
9b47ffab6e Extend Ansible config 2023-09-15 21:49:19 +10:00
d9ef505439 Note libsasl2-modules requirement 2023-09-15 21:04:00 +10:00
4c42823360 Add postfix to ansible config 2023-09-14 23:44:10 +10:00
ed96727366 Update WSGI entrypoint to match standard Django 2023-09-14 22:04:37 +10:00
da51c71ff1 fixup! Fix git merge during schedule update 2023-09-14 18:34:53 +10:00
697fc1523a Fix git merge during schedule update 2023-09-14 18:29:08 +10:00
5b315ae75e Add Ansible config 2023-09-14 18:23:04 +10:00
c0f424cac2 Update "cleanup" and "update" services for Python 3 2023-09-14 18:14:22 +10:00
d6271124d5 Remove unused files 2023-09-13 13:34:11 +10:00
b59f9c60a5 Add support for Debian Bookworm 2023-09-13 13:33:27 +10:00
8058d768fb 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
88f69c2897 Add Debian Buster dockerfile
Runs fine on Buster!
2023-09-07 23:27:33 +10:00
82d513b5b7 Apply pyupgrade --py36-plus (but skip f-strings as we're on Python 3.5) 2023-09-07 23:15:48 +10:00
a11b114bf4 Add Debian Stretch dockerfile 2023-09-07 23:03:10 +10:00
98fcf8e35d Remove use of python3-future 2023-09-07 22:59:23 +10:00
a3054f66e6 Update some dependencies 2023-09-07 19:46:14 +10:00
df7afe8135 front news blurb to zoom 2023-08-16 14:47:35 -07:00
60ee478a7b remove twisted as a member project 2023-08-16 10:24:26 -07:00
76d53ad690 Switch video to version that blurs out people who requested not to appear on camera 2023-07-25 20:27:23 -04:00
9a84e35561 Fix typo 2023-07-19 12:25:46 -07:00
9e2708ffa4 Change featured item on website to RHEL keynote. 2023-07-19 12:20:57 -07:00
ce5051b598 Add press releated to RHEL. 2023-07-12 08:17:34 -07:00
0434e8f50a intel sponsor logo for fossy 2023-07-06 13:11:44 -07:00
89a058d68b 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
e099d0ee0a lwn sponsor logo for fossy 2023-06-22 13:59:55 -07:00
aabe78d1f4 add fossy sponsor images 2023-06-19 11:30:24 -07:00
caa3cf28cc fix ids for donation methods 2023-05-11 11:04:51 -07:00
27af4bb4c1 add sourceware to member projects 2023-05-11 10:59:14 -07:00
784ece5d89 update Jeremy and Karens bios 2023-04-25 10:39:32 -07:00
ee4289e7ac Show summary for first news item on front page 2023-02-14 09:02:52 +11:00
5ecbc4c55f Fix whitespace 2023-02-11 17:22:32 +11:00
4760ef90af add fossy track cfp to main page 2023-02-09 12:43:54 -08:00
68afa2e9c3 Correct spelling error. 2023-02-09 12:43:14 -08:00
d90f0d1f63 Improve copy in two places on frontpage. 2023-02-09 12:42:02 -08:00
421aab2d86 A bit more width for the video, remove <p>
Ok, that was too small, try this.
2023-02-09 12:39:17 -08:00
e76c393b1a Try to improve look on front page. 2023-02-09 12:38:26 -08:00
6c9f0ea601 Improve copy, move video, add auto-subtitle. 2023-02-09 12:34:05 -08:00
fbcb46bfc2 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
07297867ad Make proprietary relicensing the term of the week. 2023-02-09 12:29:32 -08:00
1d7f45ffd6 Add Neo4J Expert report 2023-02-09 10:13:34 -08:00
22f70d25a0 Fix old typo in CSS 2023-02-08 23:04:37 +11:00
5da27dd12a Display summary for first news item 2023-02-08 22:51:51 +11:00
0e03baf3c3 Improve the .small-left/right and .medium-left/right classes 2023-02-08 22:44:44 +11:00
c4c00a3ebf More margin probably looks better here. 2023-02-07 14:13:51 -08:00
fbff26f3fa small right should have margin on the right. 2023-02-07 14:10:18 -08:00
551761a461 Add small left 2023-02-07 14:03:36 -08:00
10c0dfdc69 Add vtt subtitle/closed captioning for recent videos. 2023-02-07 13:53:20 -08:00
6e6b1ff87a fix fossy track submissions deadline 2023-01-31 11:15:16 -08:00
3eeffd2047 front page news to reference compliance 2023-01-31 10:52:44 -08:00
8726b256e5 FOSSY community track form: add deadline 2023-01-31 11:22:26 +11:00
4975f29b41 Update wording and fields for FOSSY community track form 2023-01-31 11:22:26 +11:00
a2df8d81ea Add initial fossy app 2023-01-31 11:22:26 +11:00
2041682980 Merge branch 'master' of ssh://k.sfconservancy.org/website 2023-01-30 08:56:07 -08:00
465f6a09c5 update mastodon template to social.sfconservancy 2023-01-30 08:55:34 -08:00
2da6cdc6f2 smile.amazon.com deprecated
add random file
2023-01-20 10:06:30 -08:00
a03053ebae smile.amazon.com deprecated 2023-01-19 11:51:16 -08:00
6a845404fe Transparency — note that current fiscal year has not yet completed. 2023-01-18 12:04:26 -08:00
4188253cb1 Form 990 — FY 2018-19 — Fix missing <ul> 2023-01-18 12:01:29 -08:00
fa88912643 Form 990 — FY 2018-19 — Add Form 990 & related for that year. 2023-01-18 11:57:00 -08:00
67c7962623 Form 990 — FY 2021-22 — add CHAR500 for this FY as well. 2023-01-18 11:15:09 -08:00
648b059c55 Audit & Form 990 — FY 2021-22 — correct links to proper documents 2023-01-18 08:19:35 -08:00
2a87afd271 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
51010645f9 Form 990 & Audit — FY 2021-22 — Add docs & update transparency page 2023-01-18 08:13:11 -08:00
d2545176ec ifixit is now a sponsor! 2023-01-11 08:21:05 -08:00
ecb3de5f2c add large donor to /sponsors 2022-12-20 16:34:12 -05:00
ed26493e91 jondale stratton supporter picture 2022-12-12 14:22:59 -08:00
0ed94f982a update google logo 2022-12-08 10:04:55 -08:00
fd86b6ca56 add freedv to /projects/current 2022-12-07 14:07:06 -08:00
136b1d004f add /fossy copy for launch 2022-12-07 10:10:16 -08:00
5d3e11bde0 add fossy copy for launch 2022-12-07 10:07:22 -08:00
8efe9990c7 fix mastodon in footer 2022-12-06 09:49:13 -08:00
9effa25586 remove kate and add ids for other board members 2022-12-06 08:15:34 -08:00
c7eb64e848 fossy landing page copy 2022-12-05 15:20:09 -08:00
cb0d183557 update denver bio for director of compliance 2022-12-05 13:17:00 -08:00
c540d6bdf1 top level didnt seem to work, trying folder 2022-11-30 07:41:49 -08:00
6c623ce849 need to change urls.py for fossy to work 2022-11-29 14:01:20 -08:00
5c03310c79 add fossy landing page 2022-11-29 13:52:22 -08:00
689b78d217 remove duplicate paragraph 2022-11-29 07:29:13 -08:00
132822d017 update privacy policy last amended date 2022-11-28 12:32:45 -08:00
3fde0e30f3 add new tshirt design to /sustainers
fixed width on 'Become a Sustainer' button
2022-11-28 09:48:53 -08:00
2d8a35375a add fundraiser progress bar for 2022 2022-11-22 14:18:25 -08:00
d024dd8797 update YearInReview for 2022 fundraiser 2022-11-22 10:33:22 -08:00
7165c50275 add tracy bio 2022-11-21 09:14:20 -08:00
91f05ed52f Merge remote-tracking branch 'origin/tracy/add-bio' 2022-11-21 09:13:00 -08:00
e09e13563d announcement of copilot news from the register 2022-10-19 09:36:37 -07:00
Tracy Homer
faa6cdd0b6 Merge branch 'tracy/conflictofinterest' 2022-09-20 14:25:55 -04:00
485fc8ee7f Mike also resigned from Eval Committee 2022-08-09 09:54:32 -07:00
ce613949f1 Publish conservancy-travel-policy.html revision 96a0a68c8e10ab4ea1f68faaf6573c141bbe7614. 2022-07-26 08:25:54 -07:00
Tracy Homer
1714c77cec 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
5491a74757 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
600e76541d add GiveUpGitHub InThePress links 2022-07-05 12:56:51 -07:00
55ae0230b4 update term of week for Give Up GitHub 2022-07-05 12:21:06 -07:00
efac8619db GiveUpGitHub: clarify this statement, it was confusingly worded. 2022-06-30 14:27:09 -07:00
e249c5dcab Give Up GitHub — correct title. 2022-06-30 13:59:54 -07:00
f19d1537d0 Rework the list of options and some of the argument. 2022-06-30 12:25:40 -07:00
6105e51b34 GiveUpGitHub: fix various formatting errors and typos. 2022-06-30 11:53:02 -07:00
cf79f8e6c6 GiveUpGitHub: Refill paragraphs and add Copilot non-consent info 2022-06-30 10:38:31 -07:00
652a1ae407 fix rdquo 2022-06-30 07:48:16 -07:00
cfb39831a6 GiveUpGitHub: move second occurrence of image a bit higher on page 2022-06-30 06:58:09 -07:00
179e163ab3 GiveUpGitHub: add logo a second time further down in page. 2022-06-30 06:45:20 -07:00
b346d7f8b1 GiveUpGitHub: Add <div> to make image more reasonably sized. 2022-06-30 06:12:06 -07:00
69580ed408 GiveUpGitHub: correct /img link 2022-06-30 06:10:06 -07:00
d79891eba4 GiveUpGitHub: Correct two links 2022-06-30 06:09:02 -07:00
278b779882 GitUpGiveHub: add id anchor for ICE issue. 2022-06-30 06:00:22 -07:00
df6a50c7c7 Add img link to GiveUpGitHub logo 2022-06-30 05:56:34 -07:00
95ec83fa1e Page needs a title! 2022-06-30 05:40:15 -07:00
f0d7914354 Use <p> tags for longer <li> items on this page. 2022-06-30 05:39:59 -07:00
8343cff121 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
268fb7b09e GiveUpGitHub campaign: main page. 2022-06-30 05:13:40 -07:00
d16d6f026a add GiveUpGitHub 2022-06-29 13:14:29 -07:00
cb0c0b075f Add README.md templates for the GiveUpGitHub campaign. 2022-06-29 13:10:07 -07:00
Tracy Homer
a169485d80 added tracy to staff page 2022-06-29 14:01:48 -04:00
79fe81f230 update Allisons bio 2022-06-29 09:57:22 -07:00
ecd0af4c51 remove Mike from board and appoint Allison as Chair 2022-06-28 12:11:10 -07:00
e3dce51f15 remove drupalNJ from current member projects 2022-06-24 10:22:22 -07:00
0a46268243 update karens bio 2022-06-22 12:54:57 -07:00
8f8e7a7de1 Change FY so it just list from and to dates. 2022-06-14 13:52:04 -07:00
6b933bc5e2 Add various articles from the last few months. 2022-06-14 13:48:37 -07:00
acec954075 remove Martin Michlmayr (tpm) from the board 2022-06-08 16:15:20 -07:00
24c1bf64c0 Add copy of PDF Q&A here as well. 2022-05-16 12:08:49 -07:00
e65419885f Add copy of press kit here as well. 2022-05-16 12:07:04 -07:00
b2ab91dce2 Update Vizio box on main page to note remand win. 2022-05-16 08:30:56 -07:00
7fe653df72 update frontpage after hearing 2022-05-13 14:34:03 -07:00
8a8e020ba7 Update the Vizio notice. 2022-05-12 19:16:44 -07:00
e9c732e4ae 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
f3aa8b2de5 Correct subtitle file name. 2022-05-12 16:12:55 -07:00
11c1a1c08c Add track tag for subtitles; make source tag HTML5 closed. 2022-05-12 15:59:53 -07:00
8d5184e522 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
2d474ec09f put intro video on first page and replace holiday card 2022-05-12 15:26:51 -07:00
a91f370711 Correct email addresses for copyright assignment form. 2022-05-02 08:23:24 -07:00
482c565f4e Make copyright assignment area live. 2022-05-02 08:05:02 -07:00
77ce0a81f5 Remove various folks no longer involved with organization. 2022-04-13 11:33:20 -07:00
bca214d114 Link to article in the Register about Neo4j and AGPLv3 2022-04-08 05:20:21 -07:00
eb174d2eb4 add taxinfo gpg key and update robots.txt with it 2022-03-31 12:53:38 -07:00
952ad1ae5a Switch alert box to talk about Neo4j 2022-03-30 10:31:38 -07:00
5ee68f0ca3 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
9f96621ea8 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
b5abd05eeb FY 2019 — Form 990 & CHAR500 — add PDFs and links to them. 2022-03-25 12:57:00 -07:00
80f5b102b5 Add deadline details on FY 2021 that just ended last month. 2022-03-25 12:57:00 -07:00
beed0a0531 Remove needless blank lines. 2022-03-25 12:57:00 -07:00
6b4bbc32a6 Handle UnicodeEncodeErrors from junk URLs. 2022-03-15 10:59:47 +11:00
1808b16377 update jmp logo 2022-02-15 11:58:19 -08:00
3bb4369470 Fix minor typo. 2022-02-01 17:19:49 -08:00
013123c3e4 assignment: pluralize copyrights, assign right for existing claims. 2022-02-02 09:31:25 +11:00
6186cadd17 add open letter to front page of website 2022-02-01 09:46:05 -08:00
49542f5757 PDF of Open Letter to Biden administration 2022-02-01 09:11:07 -08:00
1a480c8789 remove deb from eval, and some projects 2022-01-21 13:17:30 -08:00
adad873d1f 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
396bc5b863 Financial — FY 2020 — Form 990 — List document on Transparency page 2022-01-19 08:16:39 -08:00
3b50e8a282 Financial — Audit — FY 2020 — put audit report on Transparency page. 2022-01-19 08:11:26 -08:00
db228e970e HTML formatting errors (stray tags) 2022-01-19 08:06:50 -08:00
d7cf463368 Financial — Audit — FY 2019 — Add audit report to Transparency page 2022-01-19 08:06:32 -08:00
f0608f6d5d Transparency — correct out-of-date details regarding filings. 2022-01-18 18:08:34 -08:00
611decea77 Revert local development settings committed.
This reverts commit 48e32eab87.
2022-01-11 09:17:55 +11:00
48e32eab87 Rename __unicode__ methods to __str__ following Django upgrade. 2022-01-11 09:13:46 +11:00
bf3a3a3557 mdash html typos 2022-01-05 10:06:33 -08:00
76d739392d increase font size for full match 2022-01-04 15:42:03 -08:00
79e5e3df2c separate divs and add css for exceeded 2022-01-04 14:34:28 -08:00
f9de2d3c5a 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
0cd9f174f5 fix link to vizio update 2022-01-04 07:19:49 -08:00
03391226c8 move holiday banner and put motion to remand info 2022-01-03 15:42:59 -08:00
151d7860fe Fix the anchor. 2022-01-01 20:19:21 -08:00
61ab745ca8 grammar fix 2021-12-29 10:29:38 -08:00
778efc615b change language around $1.7m 2021-12-29 10:20:42 -08:00
e578f0e003 add motion to remand to frontpage and update TotW 2021-12-28 18:07:57 -07:00
09de2c5c93 Restore anchor for Supporters; #supporters URL links may be common 2021-12-27 13:01:28 -08:00
2da09fd6e4 Remove holiday greeting from every page. 2021-12-27 09:40:02 -08:00
6274c97a50 Even more space is ok here. 2021-12-24 17:33:14 -08:00
6596b5d1b7 Take up more of the screen. 2021-12-24 17:29:29 -08:00
a3865b9bc1 Add CCS and add video to sustainer page. 2021-12-24 17:28:03 -08:00
c8428be9fe Formatting improvement. 2021-12-24 17:23:55 -08:00
1da80df423 Use video tag instead of image with a link to the video. 2021-12-24 17:22:09 -08:00
b52513592c Remove stray character. 2021-12-24 17:17:12 -08:00
6618fd1798 Slightly better formatting. 2021-12-24 17:16:35 -08:00
41789c474d Correct location of link. 2021-12-24 17:11:32 -08:00
b3cdec6be4 Add holiday card to banner at top for next few days
Also, fix a few URLs .
2021-12-24 17:08:47 -08:00
828445e2ed visual postcard link and add to /sustainer 2021-12-23 16:52:45 -05:00
14335e536e add postcard to frontpage 2021-12-23 15:10:47 -05:00
6cad2162d1 add 2021 video postcard 2021-12-23 10:57:00 -05:00
fda0885450 add 2021 holiday card 2021-12-21 07:43:13 -08:00
b18bf9ff22 Merge branch 'ben/copyright-assignment' 2021-12-18 09:24:30 +11:00
8165b51f52 assignment: Fix typo noted by Pam. 2021-12-18 09:22:21 +11:00
4ad5c2cdbb 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
57a201dda5 remove number of sustainers 2021-12-17 09:43:02 -08:00
86d4c919b1 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
67a3e11cc9 Fix Django warning about old TEMPLATES_* settings. 2021-12-17 18:35:50 +11:00
127d5aa962 Fix URLconfs causing Django check warnings. 2021-12-17 18:14:50 +11:00
35f4f6d3ea Remove URL slash prefix. 2021-12-17 17:27:26 +11:00
be7bbf964c Remove unnecessary null=True on ManyToManyFields. 2021-12-17 17:25:38 +11:00
4edd10077d Disable copyright assignment URLs until we're ready to launch. 2021-12-17 16:56:07 +11:00
eb4e7b75b4 Merge branch 'ben/copyright-assignment' 2021-12-17 16:54:47 +11:00
3021e0d326 assignment: Accept current date anywhere on earth. 2021-12-17 10:54:47 +11:00
ecdfd87ffb assignment: Apply further wording updates from Pam/Denver. 2021-12-17 09:53:13 +11:00
66b13b64c6 add employer matching to /donate 2021-12-16 13:51:24 -08:00
944a69c0e7 assignment: Allow today's date. 2021-12-11 11:29:13 +11:00
8065de9b5c assignment: Mention 7 days on form. 2021-12-11 10:40:07 +11:00
4355253e6c assignment: Fix period ends in email. 2021-12-11 10:25:57 +11:00
56bcbd1e00 assignment: Validate that end date is provided if you didn't choose open-ended. 2021-12-10 18:37:13 +11:00
d3f3074f38 assignment: Apply Denver's requested changes. 2021-12-10 11:33:37 +11:00
fbef5db8ce Fix validation. 2021-12-07 17:49:57 +11:00
2ef3d7638f Remove redundant call to super(). 2021-12-07 17:06:37 +11:00
a505a1c9f0 Add missing template. 2021-12-07 17:02:04 +11:00
58b38e93c2 Update the assignment form with feedback from Pam/Denver. 2021-12-07 16:55:45 +11:00
9bf3e2d03a Add assignment date range. 2021-12-07 09:59:40 +11:00
d71f38a457 Add migration. 2021-12-07 09:59:40 +11:00
6a27ad74fe Add assignment thanks page. 2021-12-07 09:59:38 +11:00
030ce8d60c Add assignment template. 2021-12-07 09:58:56 +11:00
6e2fda8b01 Prototype copyright assignment form. 2021-12-07 09:58:47 +11:00
8b1a2638e6 fix formatting for first <ul> and h4 2021-12-06 12:43:58 -08:00
bcbceff688 add new articles to press coverage 2021-12-06 12:35:53 -08:00
3298b9fad4 Fix Unicode encoding issues. 2021-12-03 16:01:21 +11:00
5323fd7434 Fix CSS selector. 2021-12-03 15:36:16 +11:00
e129f47a34 Fix Vizio CSS selector. 2021-12-03 15:19:28 +11:00
6b93bcc0ff Add selected highlight to top feature menu. 2021-12-03 15:04:54 +11:00
79169f3d86 Add missing forms.py. 2021-12-03 11:58:26 +11:00
9cad57457a Remove type annotation. 2021-12-03 11:43:01 +11:00
93fb48e3e3 Add simple CCS upload (no JavaScript). 2021-12-03 11:38:21 +11:00
456884437c Update glossary term of the week to CCS. 2021-11-30 06:23:22 -08:00
4465425441 Shorten DMCA text in the call-out since news is getting stale. 2021-11-30 06:23:22 -08:00
534b3d1df8 Remove stray “ 2021-11-30 06:23:22 -08:00
dbb31132f2 Remove problematic call to decode(). 2021-11-30 17:35:55 +11:00
ef02ed4052 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
4ea27f1407 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
c11755a90a Don't send email notification on DisallowedHost error. 2021-11-29 14:21:14 +11:00
d7de456152 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 fc2e002 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
da6445f8f4 Remove duplicate copy of manage.py. 2021-11-26 14:04:43 +11:00
4fe75a874f Add a missed "object" change. 2021-11-26 14:03:24 +11:00
49eff7af79 Apply "object" changes only from futurize --stage2. 2021-11-26 13:49:40 +11:00
a3626b18fb Apply futurize --stage1 (safe) Python 2/3 compatibility changes. 2021-11-26 13:00:20 +11:00
49b391985f Fix a encoding issues for future Python 3 support. 2021-11-26 12:41:27 +11:00
f0df8d0abd 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
c1886ed1a5 Remove one event per discussion with karen. 2021-11-23 10:12:55 -08:00
595fa80b65 Rewrite help us continue and t-shirt sections. 2021-11-23 10:11:03 -08:00
4dfb579e6a Rewrite “Writing and Speaking” 2021-11-23 10:02:39 -08:00
c3b17a3593 Make the pun clearer with caps and quotes. 2021-11-23 10:02:22 -08:00
87514a5484 Rewrite “New Staff” 2021-11-23 09:56:17 -08:00
89c52fbafa Remove word "member" 2021-11-23 09:56:06 -08:00
f27eb568df Rewrite “Highlights from some of our member projects” 2021-11-23 09:49:24 -08:00
415d769731 Rewrite of “Our Year in Review” section; add links as well. 2021-11-23 09:25:41 -08:00
a4ce86794d Reword opening sentence, add links as discussed in XMPP 2021-11-23 09:06:10 -08:00
21faf23cf9 add copy for 2021 donation page 2021-11-23 07:58:40 -08:00
ab35f7b8f9 Move fundraising goal end times into database. 2021-11-19 17:56:44 +11:00
2538a1c163 Fix markup errors on "What We Do" causing layout issues. 2021-11-19 17:14:29 +11:00
cd1eea1540 Move sub-menus to RHS and re-enable on mobile. 2021-11-19 17:02:59 +11:00
3e3a42b38c 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
8ecb7160aa update term of the week 2021-11-08 13:08:03 -08:00
d332b006a7 make header box a link 2021-10-28 14:33:23 -07:00
27d59f463e errant ) in link 2021-10-28 14:03:32 -07:00
708977e735 fixed wrongblurb, resetting vizio and replacing truth social 2021-10-28 13:57:08 -07:00
f98982f232 change frontpage blurb to be about DMCA exemptions 2021-10-28 13:18:53 -07:00
b643283064 fix mastodon link on frontpage 2021-10-25 10:45:50 -07:00
91c9b4ad9a Add <p> tag for my bio. 2021-10-23 17:58:44 -07:00
a45649046d Put complaint with journalist resources on main page. 2021-10-23 17:44:16 -07:00
a9e458eb87 Not necessarily third-party. 2021-10-23 17:42:37 -07:00
e532e80bda Shorten box on front page a bit. 2021-10-23 12:52:27 -07:00
400924b467 Rework blog menu order. 2021-10-23 12:50:28 -07:00
e05f4bd5b4 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
4dfe8262e0 Conform title to title of blog post. 2021-10-22 14:23:39 -07:00
ef5f75429e Slug change propagation to static pages. 2021-10-22 14:20:33 -07:00
a92106b45e Make box smaller. 2021-10-21 20:47:51 -07:00
c4bfc13492 Add additional call-out for current blog post. 2021-10-21 20:38:52 -07:00
ef6bde84a3 Remove "The"s from top menu. 2021-10-21 20:36:41 -07:00
6c7dd008bc 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
f4866acf50 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
27540c5c6c Merge branch 'master' 2021-10-21 13:56:05 -07:00
1a5c403103 fix sustainer text and button for sustaining 2021-10-21 13:55:13 -07:00
1793e6c99e 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
137203bf64 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.  d4115b6 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
c6c17fc3cb add bkuhn to /press and fix sustainers button 2021-10-21 12:18:26 -07:00
2874b3ba23 Merge branch 'pono/supporter-updates' 2021-10-21 11:41:47 -07:00
d3099bb1df formatting tweaks for /press 2021-10-21 11:40:35 -07:00
bc9e126203 create page for Our Coverage 2021-10-21 11:34:34 -07:00
fcecff98d8 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
432692cd55 add text describing sustainers 2021-10-21 10:39:32 -07:00
e63ef92efa change svg to sustainer and remove tonys pic 2021-10-21 10:24:58 -07:00
d0581e5685 delete 2020 donation text 2021-10-21 09:07:30 -07:00
a23eefaddb new supporter image 2021-10-21 08:57:59 -07:00
61757231cc Learn page is not coming soon anymore! 2021-10-21 08:46:07 -07:00
ec68eac12c 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
d4115b6c6d 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
744308727c simplify /about, fix formatting on frontpage, svg img for supporters 2021-10-21 08:36:23 -07:00
62f705eaa1 Copyleft Compliance — Vizio — update title to match newswire version 2021-10-21 07:21:28 -07:00
359bc9517b Copyleft Compliance — Vizio — add missing CSS menu item thing 2021-10-20 07:49:45 -07:00
b09cc5fa7b Copyleft Compliance — Vizio — Shorten a few menu item names. 2021-10-20 07:49:01 -07:00
fac6b1306a Copyleft Compliance — Vizio — Improvements to Menu selection. 2021-10-20 07:41:58 -07:00
06ac5991e1 Copyleft Compliance — Vizio — now with case number and court stamp 2021-10-20 07:30:24 -07:00
5405f84bd0 Copyleft Compliance — Vizio — Rename Complaint file for full name 2021-10-20 07:29:04 -07:00
d8148b216f Copyleft Compliance — Vizio — Temporarily only just four news item 2021-10-19 13:06:59 -07:00
42ee8f5666 fixme on sponsors page points to /about 2021-10-19 12:18:35 -07:00
f537b17c3b add linux kernel and link for repair assoc. 2021-10-19 11:53:58 -07:00
6772142bb9 Copyleft Compliance — Vizio — Q&A is Compliance base, add PDF links 2021-10-19 11:06:10 -07:00
00281fe534 fix /press to link to documents and media@sfconservancy.org 2021-10-19 11:06:10 -07:00
8687aafdc4 Copyleft Compliance — Vizio — call it "Vizio Lawsuit" on menu. 2021-10-19 11:06:10 -07:00
caab95c5fe make description on front page bigger and fix TotW <p> 2021-10-19 11:06:10 -07:00
99b3c98af9 add back Vizio button on main page and Vizio into menu 2021-10-19 11:06:10 -07:00
dfd52469ba Copyleft Compliance — Vizio — "Special Message" was placeholder. 2021-10-19 11:06:10 -07:00
9f22699a36 Copyleft Compliance — Vizio — fix typo in URL 2021-10-19 11:06:10 -07:00
c94f162b22 Copyleft Compliance — Vizio — temporarily put first line of PR here 2021-10-19 11:06:10 -07:00
5252e57e16 Copyleft Compliance — Vizio — put two links in Learn about it
This unreverts a210ae9860
2021-10-19 11:06:10 -07:00
8d697797e0 Copyleft Compliance — Vizio — Add complaint. 2021-10-19 11:06:06 -07:00
d6466c2efc Copyleft Compliance — Vizio — initial announcement 2021-10-19 11:05:16 -07:00
a210ae9860 Revert addition from pono — Q&A link added too early
Commit d092c7b275 included this link,
and it was brought in from a branch from pono.  Removing it
temporarily.
2021-10-19 09:23:45 -07:00
5db4a3b420 past litigation: add summary for top of page. 2021-10-19 09:20:18 -07:00
a30b8c7eb4 fix /press with links and media contact info 2021-10-19 08:36:32 -07:00
fa10a016fc update staff and bug fix for /news menu 2021-10-19 08:36:32 -07:00
f7f73bb465 Write section on Conservancy v. Best Buy et al & update VMware info 2021-10-19 08:36:32 -07:00
1f35b1f77b 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
085740580b Add Help Compliance page and put it on the menu. 2021-10-19 08:36:32 -07:00
f42f12d445 Change "" to &ldquo; and &rdquo; 2021-10-19 08:36:32 -07:00
b4be253399 frontpage: comment out image until we have a good one. 2021-10-19 08:35:41 -07:00
8ea24e7378 Temp remove additional call out links. 2021-10-19 07:38:56 -07:00
4c82f87771 Fix breadcrumb link. 2021-10-19 06:50:26 -07:00
a1fb74899d 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
07a52eb36f Make the sidebar selected state less subtle. 2021-10-19 06:50:26 -07:00
fa481e71c0 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
f3b7c7b7ff add more articles to In The News 2021-10-19 06:50:26 -07:00
Daniel Pono Takamori
76aad46546 add learn coming soon 2021-10-19 06:50:26 -07:00
Daniel Pono Takamori
67ff1ceca4 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
816079f9ed page should have a <h1> title. 2021-10-19 06:50:26 -07:00
8ec0bf7461 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
c7eb860eb8 the class="MENU" goes with the <li> element, not <a> element. 2021-10-19 06:50:26 -07:00
b8a10c1ef0 Experiment to see if restoring class= for submenus fixes highlight. 2021-10-19 06:50:26 -07:00
82b59e50f6 Make copyleft compliance the term of the week. 2021-10-19 06:50:26 -07:00
05e217be59 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
549bff11cf Note that special message is coming later today. 2021-10-19 06:50:25 -07:00
a3aef93b72 Make page look prettier. 2021-10-19 06:50:25 -07:00
ad20e688bc Also need to add a URL for this to work. 2021-10-19 06:50:25 -07:00
dff3bee6a5 add coming soon file. 2021-10-19 06:50:25 -07:00
Daniel Pono Takamori
701e525143 no-vizio 2021-10-19 06:50:25 -07:00
884f3120b0 Fix a glitch in the pop-out donations box. 2021-10-19 06:47:58 -07:00
6aecf859e4 Move donation sidebar to pop out at bottom. 2021-10-19 06:47:58 -07:00
Daniel Pono Takamori
14669a049b temporarily(?) remove FAQs, Recommended Resources 2021-10-19 06:47:58 -07:00
Daniel Pono Takamori
1ed26085a4 remove supporter header image 2021-10-19 06:47:58 -07:00
Daniel Pono Takamori
a065ea74c1 remove donation sidebar from learn and press pages 2021-10-19 06:47:58 -07:00
Daniel Pono Takamori
ed79000179 add base_learn and fix menus for glossary 2021-10-19 06:47:58 -07:00
Daniel Pono Takamori
fa5cf6ea93 remove extraneous menu in body 2021-10-19 06:47:58 -07:00
Daniel Pono Takamori
3b06bef068 add appropriate top level menu to sidebar 2021-10-19 06:47:58 -07:00
d092c7b275 Break submenus out into separately included files for reuse in sidebars. 2021-10-19 06:47:58 -07:00
Daniel Pono Takamori
e2c0b2a41a hannahs suggestions to /vizio 2021-10-19 06:47:58 -07:00
adf90acdbc Improve sidebar and inline images on mobile. 2021-10-19 06:47:58 -07:00
77ebc640da Fix issue with submenu items incorrectly marked as selected. 2021-10-19 06:47:58 -07:00
Daniel Pono Takamori
6b8efb5df7 add fixmes to /vizio 2021-10-19 06:47:58 -07:00
Daniel Pono Takamori
6df0befc14 change email to link Learn More to /about 2021-10-19 06:47:58 -07:00
Daniel Pono Takamori
cd55119c72 fix menu and make initial press kit 2021-10-19 06:47:58 -07:00
Daniel Pono Takamori
4ceceba017 add vizio landing page under
use Press sidebar
2021-10-19 06:47:58 -07:00
Daniel Pono Takamori
0f6085bc3b 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
762350eb6a add initial press page, glossary and edit menus 2021-10-19 06:47:58 -07:00
Daniel Pono Takamori
eff233bc73 add glossary and fixing Public Filings link 2021-10-19 06:47:58 -07:00
9e1f28a537 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
9e030589cc link Member Projects to /projects/ 2021-10-19 06:47:58 -07:00
5ec6b8df2f use shoestring text 2021-10-19 06:47:58 -07:00
04ba5e2059 update frontpage description 2021-10-19 06:47:58 -07:00
c8ad70fa1d Darken the selected menu item. 2021-10-19 06:47:58 -07:00
5f5f1b3c73 Link up news breadcrumbs. 2021-10-19 06:47:58 -07:00
70312edb86 Link up news menu item. 2021-10-19 06:47:58 -07:00
01aea60856 Add breadcrumb examples and expading FAQ sections. 2021-10-19 06:47:58 -07:00
d1a4125156 Display mobile menu above the supporter sidebar. 2021-10-19 06:47:58 -07:00
cfd85ca193 Only focus search if search button clicked. 2021-10-19 06:47:58 -07:00
fd526f65fa Add mobile menu and DuckDuckGo-based search. 2021-10-19 06:47:58 -07:00
e3986047b9 Reduce homepage top margin. 2021-10-19 06:47:58 -07:00
d1f9a1cdf4 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
ae0d9b955f Overhaul header, first pass at second level navigation. 2021-10-19 06:47:58 -07:00
c7f31f1aa1 Rename "supporter" to "sustainer" in templates and URLs.
Does not rename the models.
2021-10-19 06:47:58 -07:00
cb599c0e20 Remove "Donate" link from main menu. 2021-10-19 06:47:58 -07:00
e909b4588d Switch to SVG logo.
Will look better on mobile.
2021-10-19 06:47:58 -07:00
f9f83c98d8 Tune up frontpage news/blog items and term of week, add call out section. 2021-10-19 06:47:58 -07:00
95afcfb5a1 Add missing </div> tag. 2021-10-19 06:47:58 -07:00
f879ea87f1 Hide RSS icon for frontpage news and articles. 2021-10-19 06:47:58 -07:00
e15ea88197 Add link and button focus/active states. 2021-10-19 06:47:58 -07:00
c7dbeee87f Fix frontpage column alignment and subscription box. 2021-10-19 06:47:58 -07:00
a53c3c52d7 Add meta-viewport for mobile device support. 2021-10-19 06:47:58 -07:00
bd65f75493 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
2c364a5a7f 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
5fdb71dae4 Crop the dots out of the header banner. 2021-10-13 21:30:02 +11:00
50cfb35207 Count supporters in the database - it's faster. 2021-10-13 21:20:58 +11:00
36c2a6aa77 Remove unused import. 2021-10-13 21:20:24 +11:00
f08d80a8ea add picture of tweet for cyborg article 2021-08-24 09:01:04 -07:00
Daniel Pono Takamori
352c99337e change chat info to new xmpp stuff 2021-06-21 16:21:46 -07:00
Daniel Pono Takamori
275d34ebd5 change freenode to libera 2021-06-11 16:14:42 -07:00
aac8c9f107 Try two press releases at a time on the front page. 2021-05-14 08:16:31 -07:00
Daniel Pono Takamori
93de2a3523 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
13f13ea702 sponsors: Add jmp.chat. RT#13070. 2021-04-02 09:22:42 -04:00
Brett Smith
d48b4be0d1 supporter: Update contact email address.
Mirroring the recent donate changes.
2021-03-30 14:05:45 -04:00
Brett Smith
4e94b118ed donate: Typo fix. 2021-03-30 13:19:49 -04:00
Brett Smith
7657874adb 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
e5c16a22cc Still too many blog posts on the front page. 2021-03-25 12:33:42 -07:00
c8e5ca86c3 Update verbs as needed for congruence with previous change. 2021-03-25 12:30:43 -07:00
bbcfa60253 Remove items that are time-focused; adapt for Conservancy's site 2021-03-25 12:24:28 -07:00
212ebf9f4a Woah, too much old blog content on front page. 65 days better. 2021-03-23 19:01:15 -07:00
e1356c17c9 Tweak front page time delays and listings a bit. 2021-03-23 18:54:52 -07:00
ace38a9236 Remove logos from entities that no longer sponsor. 2021-03-04 10:26:55 -08:00
bb90b2793b PIA did not pay for sponsorship. 2021-03-04 10:24:46 -08:00
2f6c51f71c Josh Triplett renewed at lower level; appears as a regular Supporter 2021-03-04 10:23:46 -08:00
Brett Smith
37394aca62 projects: Add Drupal NJ. 2021-02-10 09:38:21 -05:00
Brett Smith
1cac734e8d sponsors: Add Indeed. RT#13971. 2021-02-10 09:26:33 -05:00
087dcb3d85 Screen shot of Organizers Panel. 2021-02-08 11:56:04 -08:00
Brett Smith
f97abdd3ad img: Add Jeremy Allison photo. 2021-01-14 17:18:49 -05:00
d8e037548e Fundraising: Vintage T promotion now $256 instead of $512 (few more) 2021-01-14 11:52:00 -08:00
993e851b60 Fundraising: Vintage T promotion now $256 instead of $512. 2021-01-14 11:48:55 -08:00
d268f014d2 Supporters: VintageT: ran out of MenM. 2021-01-11 13:47:57 -08:00
Brett Smith
067f762dd0 img: MicroBlocks images. 2021-01-07 11:35:48 -05:00
db25b49a98 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
8e9d7f0f5d Update privacy policy for stamps.com.
Per Karen.
2020-12-22 10:43:18 -05:00
Brett Smith
bd3568d5b2 img: Add ReproBuilds group photo. 2020-12-21 10:50:53 -05:00
Brett Smith
ffc667009d sponsors: Add CodeWeavers. RT#11026. 2020-12-18 16:55:00 -05:00
fc2e002e6f 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
43c46dc92f DMCA: Triennial Rulemaking 2021: Long Comment filings. 2020-12-15 12:18:19 -08:00
a856c0daca Typo fix. 2020-12-08 09:27:46 -08:00
f61a143124 Move pictures around some more. 2020-12-04 12:41:19 -08:00
4950be9541 Split this to two sentences. 2020-12-04 12:25:34 -08:00
155eb3879a 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
5f58ae8b62 Move this div to the right place. 2020-12-04 12:08:14 -08:00
1d9b470853 Make tiny pictures a bit bigger. 2020-12-04 12:07:59 -08:00
61bcea268e Move group picture higher, don't float left/right. 2020-12-04 11:39:12 -08:00
df292dabf0 Hopefully final <div> moving aroundedness. 2020-12-04 11:36:41 -08:00
30e6b610e8 Close <div> for sections in the right place. 2020-12-04 11:34:09 -08:00
f3efb93b1a 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
a57641e017 Make font size smaller for picture-tiny 2020-12-04 11:32:49 -08:00
d170d87331 Create picture-tiny option; fix various formatting typos. 2020-12-04 11:29:18 -08:00
b989206dc5 Launch vintage t-shirt give-away promotion for fundraiser. 2020-12-04 11:21:40 -08:00
Brett Smith
8f2543234d img: Add Sage Sharp headshot. 2020-12-02 14:47:18 -05:00
Brett Smith
39ccdbe923 sponsors: Add ARDC. 2020-12-01 17:12:42 -05:00
c770a08888 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
8e9febde5d In 2020, mjw gave enough to be listed as a sponsor! 2020-12-01 11:12:09 -08:00
152d24ed99 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
4a125ab84c Add br tag in Tony's photo caption. 2020-11-25 21:12:49 -08:00
c7dff9484a Supporter: link to Tony on board page, add link to Copyleft Conf. 2020-11-25 21:05:44 -08:00
776eb5cd4e 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
b29d7774ac Close image tag and other changes to caption. 2020-11-25 20:51:27 -08:00
7dd86bcbd1 Supporters: Make my picture smaller with CSS. 2020-11-25 20:40:06 -08:00
8345a682b2 Supporter: add photo of bkuhn. 2020-11-25 20:33:53 -08:00
f8263c694b a.expander: better way to center items in modern browsers. 2020-11-25 19:46:59 -08:00
f83dd62383 Remove active class addition; don't remove data attr, only expand a 2020-11-25 19:42:57 -08:00
aba3d47528 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
141a2681ef 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
e64f577b0e Supporter page: add … at end of each data-read-more. 2020-11-25 19:14:35 -08:00
Brett Smith
656505cd7c 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
7fbeb58f75 js: Bugfix handling the "no window.location.hash" case. 2020-11-25 11:43:57 -05:00
Brett Smith
99020618af supporter: Collapse individual appeal sections. 2020-11-25 11:32:07 -05:00
Brett Smith
f8f080f8a6 js: Code simplification. 2020-11-25 10:45:38 -05:00
Brett Smith
be37620bb5 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
0452790a37 Linux Australia did not renew donation. 2020-11-03 11:09:55 -08:00
fe705c1712 Compliance and Enforcement go together! 2020-10-02 19:53:41 -07:00
be15caeaad pump.io page is no longer maintained. 2020-10-02 19:52:46 -07:00
bda2148b19 Change title on donate box. 2020-10-02 19:50:41 -07:00
bed6fa3819 Fix Compliance sidebar menu selection. 2020-10-02 19:49:50 -07:00
6aca4eb068 Update compliance donate box to only talk of becoming supporter. 2020-10-02 19:45:10 -07:00
1157687c58 Various typo fixes and wordsmith changes. 2020-10-02 19:44:04 -07:00
b7c8fbb8f1 Correct date of launch and link to announcement. 2020-10-01 15:46:19 -07:00
9810aa33b9 {% endblock %} is absolutely needed here. 2020-10-01 10:58:20 -07:00
30f6134c27 Various typo fixes and minor textual improvements. 2020-10-01 10:52:25 -07:00
Denver Gingerich
a1fde23aa5 Copyleft Compliance: minor word updates/HTML fixes 2020-10-01 10:52:25 -07:00
b102dd4ea3 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
63a2e603d5 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
fd8c7f6851 Copyleft: rename to "Strategic GPL Enforcement Initiative" 2020-10-01 10:52:25 -07:00
ec83a56a86 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
88a805bf4b 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
2e1211d7e9 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
1100b02212 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
c3fccd90a2 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
fdd93f1698 projects: Typo fix image path from last commit. 2020-09-10 21:45:34 -04:00
Brett Smith
1b1d164fa2 projects: Update OpenWrt logo. RT#12571 2020-09-10 21:44:33 -04:00
Brett Smith
45d27e5864 projects: Add OpenWrt. 2020-09-10 13:28:45 -04:00
1b73d5212e Deb now works for OSI.
See: https://sfconservancy.org/news/2020/aug/20/debleaving/
2020-08-31 17:51:52 -07:00
Brett Smith
3083ed277c 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
5ad3d3ed58 projects: Typo fix last commit. 2020-07-21 11:32:32 -04:00
Brett Smith
7887a38b06 projects: Add ICR. 2020-07-21 10:23:58 -04:00
Bradley M. Kuhn
adb01acd0e Synchronize my Eval Committee bio with the version on staff page. 2020-07-02 16:15:40 -07:00
Bradley M. Kuhn
7bffeac874 Mike Hostetler has left the Eval Committee. 2020-07-02 16:14:56 -07:00
bf3eabe6e7 Karl Fogel has left the Eval Committee. 2020-07-02 16:02:08 -07:00
Brett Smith
2babdda258 projects: Delist projects. 2020-06-01 16:25:11 -04:00
eximious
d0b9159bc5 add Tony pic 2020-04-28 15:52:40 -04:00
eximious
e9de39ca8a Merge branch 'master' of ssh://k.sfconservancy.org/website 2020-04-28 15:51:06 -04:00
eximious
77706e41c7 add Tony pic 2020-04-28 15:50:44 -04:00
Brett Smith
5224161bde img: Add thumbnail from Deb's CHAOSScon keynote. 2020-04-27 09:16:17 -04:00
eximious
c7615a3c93 add Faifcast at SeaGL pics 2020-03-31 15:11:24 -04:00
Bradley M. Kuhn
aa67c472fc Publish conservancy-travel-policy.html revision 4b21de38c2eab014dbfb776460c7600716bd6653. 2020-03-27 13:33:00 -07:00
Bradley M. Kuhn
0dfa78acf5 Publish conservancy-travel-policy.html revision d3640cc7e0181236b3b5a988328ab2ae82cd7c03. 2020-03-27 13:21:37 -07:00
Bradley M. Kuhn
39ff77c146 Publish conservancy-travel-policy.html revision 9ef7fadc65c41438dd5dfeec3544bf80b53e4cea. 2020-03-27 12:47:49 -07:00
Bradley M. Kuhn
a0aa9bb89b Publish conservancy-travel-policy.html revision efb14f1e18273e4f164e3b3a689a086fd511ba26. 2020-03-27 12:21:56 -07:00
Bradley M. Kuhn
5eb2a38230 Publish conservancy-travel-policy.html revision 3b1bc93469c1bb9ceb479f32c29fd7a8ee3521e3. 2020-03-27 12:09:25 -07:00
eximious
9175235ed2 add Peter's photos 2020-03-19 10:52:48 -04:00
Brett Smith
582f29a4d0 projects: Update Outreachy link. 2020-02-24 14:36:55 -05:00
eximious
252297f0d1 add rotated pic 2020-02-07 14:05:36 -05:00
eximious
4df1a17d28 Merge branch 'master' of ssh://k.sfconservancy.org/website 2020-02-07 10:39:53 -05:00
eximious
96bb90439d add copyleftconf2 pic 2020-02-07 10:39:29 -05:00
Bradley M. Kuhn
7f694b2bf9 Correct & update hard-coded domain names from legacy codebase. 2020-01-24 09:26:59 -08:00
Brett Smith
3240adc116 img: Fix extension on last commit. 2020-01-14 13:11:40 -05:00
Brett Smith
ae011f46b2 img: Add Edward Snowden 2016 pic. 2020-01-14 13:08:36 -05:00
Brett Smith
9c447d2e51 img: Photo of Leslie Hawthorn. 2020-01-13 12:17:27 -05:00
eximious
58a2247683 Merge branch 'master' of ssh://k.sfconservancy.org/website 2020-01-07 17:39:23 -05:00
eximious
3a050be7d5 add wine bottle pic 2020-01-07 17:38:54 -05:00
eximious
69bceda48d add Wine Conf 2020-01-07 16:34:45 -05:00
Bradley M. Kuhn
8f550d9497 Sponsors: Savoir Faire Linux did not renew sponsorship. 2020-01-06 12:12:49 -08:00
Bradley M. Kuhn
bcad4def62 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
4edf67af41 Sponsors: ok, somehow, someday, I'll have this file name right. 2020-01-06 10:07:59 -08:00
Bradley M. Kuhn
169d7951f2 Sponsors: Yet another image file typo fix. 2020-01-06 08:47:41 -08:00
Bradley M. Kuhn
67aaea2a6f Sponsors: finally get image file in right place 2020-01-05 20:40:27 -08:00
Bradley M. Kuhn
f5d47bd336 Sponsors: Fix case in file name 2020-01-05 20:28:42 -08:00
Bradley M. Kuhn
0859aa2644 Sponsors: Update image of Josh Triplett. 2020-01-05 20:24:43 -08:00
eximious
900fba33a7 add Allison pic 2020-01-03 11:35:41 -05:00
eximious
19410b9c74 add snow art 2019-12-18 12:51:46 -05:00
eximious
ba99432440 add mjw 2019-12-17 14:56:54 -05:00
eximious
0da06af277 Merge branch 'master' of ssh://k.sfconservancy.org/website 2019-12-12 15:41:03 -05:00
eximious
da8eb7c687 add cats 2019-12-12 15:11:04 -05:00
Brett Smith
723a66a7ea banners: Update for 2019. 2019-12-11 10:22:27 -05:00
Brett Smith
163768275a banners: Add 2019 banners. 2019-12-11 10:20:35 -05:00
Bradley M. Kuhn
b1e5f5d4fc Change tense on verb since date is past. 2019-11-27 13:13:39 -08:00
eximious
b7748dcac1 add byline to MB photo 2019-11-26 10:56:17 -05:00
eximious
990316a6ac tweak number 2019-11-25 12:49:24 -05:00
eximious
508dcd0e42 tweak funding dev section 2019-11-25 12:34:41 -05:00
Brett Smith
4481863ae0 supporter: Add link to Supporter form where appropriate. 2019-11-25 12:19:27 -05:00
Brett Smith
dd0fa3a7f2 supporter: 2019 appeal text. 2019-11-25 12:05:48 -05:00
Brett Smith
3c7434b070 base_conservancy: Ready fundraiser bar for 2019. 2019-11-24 16:01:57 -05:00
Brett Smith
886346529c systemd: Replace cron infrastructure. 2019-11-23 18:20:09 -05:00
Brett Smith
3e362f14b5 website-update: Take PRODUCTION_BRANCH from the environment. 2019-11-23 09:18:23 -05:00
Brett Smith
f632f2f2aa website-update: Don't define SITEDIR in the script.
Prefer setting WorkingDirectory.
2019-11-23 09:14:45 -05:00
Brett Smith
3395af3519 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
9addadce1f website-update: Stop updating the database.
Move this to a separate service.
2019-11-23 09:12:12 -05:00
Brett Smith
3de53472cf base: Fundraiser banner only shows days left when time is short. 2019-11-22 09:46:33 -05:00
Brett Smith
027cd0e3e0 base: Break out individual local context variables. 2019-11-22 09:46:07 -05:00
Brett Smith
d850aa3b3f projects: Delist Spec-Ops. 2019-11-18 12:53:31 -05:00
eximious
899f6c82fd add pics 2019-10-24 14:45:23 -04:00
Bradley M. Kuhn
19e1e58cdf 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
81242600db Merge branch 'master' of ssh://k.sfconservancy.org/website 2019-10-15 13:19:43 -07:00
Bradley M. Kuhn
577b76a992 Add id link for bkuhn. 2019-10-15 09:44:07 -07:00
eximious
37283c6188 Merge branch 'master' of ssh://k.sfconservancy.org/website 2019-10-10 14:54:29 -04:00
Bradley M. Kuhn
d968c64532 List staff alphabetically by surname. 2019-10-08 12:53:18 -07:00
Bradley M. Kuhn
02097e5df2 Fix missing closing anchor tag 2019-10-08 11:54:36 -07:00
Bradley M. Kuhn
f09b733ddb 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
75b47bdcc1 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
65a7838f52 Merge branch 'rmgplus' of https://k.sfconservancy.org/website-mlinksva 2019-10-07 16:42:51 -07:00
Martin Michlmayr
48b1c6a6cf 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
85e4d25de5 Add FY 2019 2019-09-28 13:28:57 +02:00
Martin Michlmayr
21714b7326 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,48 +113,45 @@ 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):
make_object_list = True
allow_future = True
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
class BlogMonthArchiveView(MonthArchiveView):
allow_future = True
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
class BlogDayArchiveView(DayArchiveView):
allow_future = True
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
class BlogDateDetailView(DateDetailView):
allow_future = True
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>
@ -29,12 +29,12 @@
much help as possible to comply with copyleft, so we did.</p>
<p>We've worked for years to help VMware comply with the GPL, but they
refuse. Negotiations broke down for the last time when they insisted on an
refuse. Negotiations broke down for the last time when they insisted on an
NDA just to discuss settlement terms!</p>
<p>Christoph is among the most active developers of Linux. As of Feburary
19, 2015, Christoph has contributed 279,653 lines of code to the Linux kernel,
and ranks 20th among the 1,340 developers involved in the latest 3.19 kernel
<p>Christoph is among the most active developers of Linux. As of Feburary
19, 2015, Christoph has contributed 279,653 lines of code to the Linux kernel,
and ranks 20th among the 1,340 developers involved in the latest 3.19 kernel
release. Christoph also
ranks 4th among those who have reviewed third-party source code, tirelessly
corrected and commented on other developers' contributions. Christoph
@ -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>
@ -97,11 +97,11 @@ judges think. (Check out our <a href="/copyleft-compliance/vmware-lawsuit-faq.h
information</a>.)</p>
<p>Help us pay for this expensive lawsuit and to generally defend software
freedom and the GPL. Help us show the world that copyleft matters. We are excited
to announce that we already reached an anonymous match for this campaign, where every dollar donated
freedom and the GPL. Help us show the world that copyleft matters. We are excited
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>
@ -119,7 +119,7 @@ information</a>.)</p>
type="video/webm; codecs=&#34;vp8, vorbis&#34;"
/>
</video>
</p>

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,17 +301,17 @@ 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>
</pre>
<h4>Combination of &ldquo;vmkernel&rdquo; code with &ldquo;vmkdrivers&rdquo;</h4>
<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
@ -111,7 +112,7 @@ Interest; all encourage you to <a href="#donate-box" class="donate-now">donate a
<p>The project that Conservancy proposes will take a modest step
forward in creating a better solution for everyone.
forward in creating a better solution for everyone.
<a href="#quotes">Many NPO leaders and academics agree</a> with Conservancy about the
immediate need for work to begin on this
effort. <a id="endorsements"

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

@ -49,7 +49,7 @@ By: \hspace{0.95em}\rule{0.50\textwidth}{0.2mm} \hfill{}Date: \rule{0.25\textwid
\begin{document}
\begin{center}
\textsc{\Huge Fiscal Sponsorship Agreement}{\Huge {} }
\textsc{\Huge Fiscal Sponsorship Agreement}{\Huge {} }
\par\end{center}
\bigskip{}
@ -57,11 +57,11 @@ By: \hspace{0.95em}\rule{0.50\textwidth}{0.2mm} \hfill{}Date: \rule{0.25\textwid
This Agreement is made by and between Software Freedom Conservancy
(``Conservancy'') and FIXME-CONTRIBUTOR-NAMES (the ``\signatories'')
on behalf of the project known as \projectname (the ``Project'') (each, a
``Party''; together, ``the Parties''). Conservancy is a New York nonprofit
public benefit 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 (IRC) and classification as a public charity under
on behalf of the project known as \projectname (the ``Project'') (each, a
``Party''; together, ``the Parties''). Conservancy is a New York nonprofit
public benefit 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 (IRC) and classification as a public charity under
IRC Sections 509(a)(1) and 170(b)(1)(A)(vi).
\textsc{Whereas:}
@ -69,22 +69,22 @@ IRC Sections 509(a)(1) and 170(b)(1)(A)(vi).
\begin{enumerate}[label=\Alph*.,ref=\S \Alph*]
\item Conservancy's organizational mission and charitable goal is to promote,
improve, develop and defend Free, Libre, and Open Source Software
projects.
projects.
\item The purpose of the Project is to produce, distribute, document, and
improve software and/or documentation that can be freely copied, modified and redistributed,
and for which modified versions can also be redistributed (``Free Software''),
and to facilitate and organize its production, improvement and ease
of use.
of use.
\item Conservancy desires to act as the fiscal sponsor of the Project beginning
on the Effective Date (as defined below) to assist the Project in
accomplishing its purpose, which Conservancy has determined will further
Conservancy's charitable goals. The \signatories desire to manage
the Project under the sponsorship of Conservancy.
the Project under the sponsorship of Conservancy.
\item Conservancy's Board of Directors has approved the establishment
of a fund to receive donations of cash and other property earmarked
for support of the Project and to make disbursements in furtherance
of the Project's mission (the ``Project Fund''). Currently, the
principal office of the Project is located at: [FIXME: MAILING ADDRESS].
principal office of the Project is located at: [FIXME: MAILING ADDRESS].
\end{enumerate}
\medskip{}
@ -94,7 +94,7 @@ principal office of the Project is located at: [FIXME: MAILING ADDRESS].
\begin{enumerate}[label=\arabic*.,ref=\S~\arabic*]
\item \textbf{Term of Agreement}. As of the Effective Date, the Project
joins Conservancy, which relationship will continue unless and until
terminated as set forth in \ref{Termination}.
terminated as set forth in \ref{Termination}.
\item \textbf{Project Management and Activities}.
@ -106,7 +106,7 @@ to the \leadershipbody as defined in \ref{Representation},
subject at all times to the direction and control of Conservancy's
Board of Directors. Conservancy will only intervene in the program
activities to the extent the Project is not in compliance with \ref{FreeSoftware}
or \ref{CharitablePurpose} of this Agreement.
or \ref{CharitablePurpose} of this Agreement.
\item \textbf{The Project Will Be Free Software}. \label{FreeSoftware}
Conservancy and the \leadershipbody agree that any and all software
and/or documentation distributed by the Project will be distributed solely as Free Software.
@ -119,11 +119,11 @@ revenue items, accounts payable and receivable, negotiation of leases
and contracts, disbursement of Project funds (including grants), and
other activities planned by the Project shall be the ultimate responsibility
of Conservancy and shall be conducted in the name of Conservancy,
beginning on the Effective Date.
beginning on the Effective Date.
\item \textbf{Project Not An Agent Of Conservancy}. The \signatories
hereby acknowledge that the Project and the \leadershipbody
do not and shall not act as an agent for Conservancy unless specifically
authorized in writing by Conservancy to do so.
authorized in writing by Conservancy to do so.
\end{enumerate}
\item \textbf{Fees}. The \signatories agree to donate ten percent
(10\%) of the Project's gross revenue (including, but not necessarily limited
@ -161,7 +161,7 @@ is the intent of the Parties that this Agreement be interpreted to
provide Conservancy with variance powers necessary to enable Conservancy
to treat the Project Fund as Conservancy's asset in accordance with
Financial Accounting Statement No. 136 issued by the Financial Accounting
Standards Board, while this Agreement is in effect.
Standards Board, while this Agreement is in effect.
\item \textbf{Project Fund Management / Performance of Charitable Purposes}.
\label{CharitablePurpose} All of the assets received by Conservancy
under the terms of this Agreement shall be devoted to the purposes
@ -176,7 +176,7 @@ to participate or intervene in any political campaign on behalf or
in opposition to any candidate for public office, to induce or encourage
violations of law or public policy, to cause any private inurement
or improper private benefit to occur, nor to take any other action
inconsistent with IRC Section 501(c)(3).
inconsistent with IRC Section 501(c)(3).
\item \textbf{Representation of the Project in Conservancy}. \label{Representation}The
\signatories, each a signatory hereto, hereby establish and comprise
@ -265,28 +265,28 @@ Members and/or to increase the Committee composition to the required
Minimum.
\item \textbf{An Elected Oversight Committee.} The \signatories, each
a signatory hereto, shall initially [FIXME: form or comprise] the
\leadershipbody as a Project Committee (``Committee'') to
a signatory hereto, shall initially [FIXME: form or comprise] the
\leadershipbody as a Project Committee (``Committee'') to
represent the Project in its official communication with Conservancy. The
Committee shall hereafter be elected by community members of the Project as
designated by the Committee or a subcommittee of the Committee (the
``Community Members'').
designated by the Committee or a subcommittee of the Committee (the
``Community Members'').
The positions on the Committee will be on a two-year staggered basis
([FIX-ME: some portion] of the initial board seats will be for one year).
The members of the Committee may be removed from the position at any time
by a majority vote of the Community Members. Upon the resignation or
removal of a member of the Oversight Board, the Community Members shall
elect a replacement Community Member to serve on the Committee.
The positions on the Committee will be on a two-year staggered basis
([FIX-ME: some portion] of the initial board seats will be for one year).
The members of the Committee may be removed from the position at any time
by a majority vote of the Community Members. Upon the resignation or
removal of a member of the Oversight Board, the Community Members shall
elect a replacement Community Member to serve on the Committee.
The Committee will elect a single individual to communicate with
Conservancy (the ``Representative'') and shall notify Conservancy promptly
following the election of a new Representative. The Representative will
The Committee will elect a single individual to communicate with
Conservancy (the ``Representative'') and shall notify Conservancy promptly
following the election of a new Representative. The Representative will
have the authority to instruct Conservancy on the Project's behalf on all
matters.
matters.
This section may be modified by a vote of at least $\frac{3}{4}$ths of the
Community Members, with the consent of Conservancy, such consent not to be
This section may be modified by a vote of at least $\frac{3}{4}$ths of the
Community Members, with the consent of Conservancy, such consent not to be
unreasonably withheld.
@ -299,7 +299,7 @@ project usually has a uniquely worded Representation section. ]
\item \textbf{Outstanding Liabilities}. The \signatories represent
that any liabilities that may be outstanding in connection with the
Project have been disclosed to Conservancy.
Project have been disclosed to Conservancy.
\item \textbf{Termination}. \label{Termination} The \leadershipbody or Conservancy
may terminate this Agreement at any time subject to the following
understandings:
@ -315,20 +315,20 @@ following requirements (the ``Successor has Qualified''):
\begin{enumerate}[label=\roman*.,ref=\theenumi(\alph{enumii})(\roman*)]
\item the Successor is another nonprofit corporation which is tax-exempt
under IRC Section 501(c)(3),
under IRC Section 501(c)(3),
\item the Successor is not classified as a private foundation under Section
509(a),
\item the Successor is willing and able to sponsor the Project, and,
509(a),
\item the Successor is willing and able to sponsor the Project, and,
\item the Successor has (a) communicated its willingness to sponsor the
Project in writing to Conservancy and (b) sent a copy of its 501(c)(3) determination letter to Conservancy, and,
Project in writing to Conservancy and (b) sent a copy of its 501(c)(3) determination letter to Conservancy, and,
\item the Successor is approved in writing by both Parties by the end of
the Notice Period, such approval not to be unreasonably withheld.
the Notice Period, such approval not to be unreasonably withheld.
\end{enumerate}
\item \textbf{Additional Search Periods}. If the Parties cannot agree on
a Successor to sponsor the Project, the \leadershipbody
shall have an additional 60 days to find a Successor willing and able
to sponsor the Project. Any subsequent search periods of any length
shall only be granted at Conservancy's written permission.
shall only be granted at Conservancy's written permission.
\item \textbf{Transfer to a Successor}. If a Successor has Qualified, the balance
of assets in the Project Fund, together with any other assets held
or liabilities incurred by Conservancy in connection with the
@ -339,8 +339,8 @@ that may be required.
\item \textbf{Termination Without a Successor}. If no Successor is found,
Conservancy may dispose of Project assets and liabilities
in any manner consistent with applicable tax and charitable trust
laws.
\item \textbf{\signatories' Right to Terminate.}
laws.
\item \textbf{\signatories' Right to Terminate.}
The \signatories hereby acknowledge that they will relinquish any
rights to terminate separate from the \leadershipbody as
of the Effective Date.
@ -352,16 +352,16 @@ This Agreement shall be interpreted and construed in accordance with
the laws of the State of New York. This Agreement constitutes the
only agreement, and supersedes all prior agreements and understandings,
both written and oral, among the Parties with respect to the subject
matter hereof.
matter hereof.
\item \textbf{Amendments. }This Agreement may not be amended or modified,
except in writing and signed by both Conservancy and the entirety of \leadershipbody.
except in writing and signed by both Conservancy and the entirety of \leadershipbody.
\item \textbf{Counterparts / Facsimile}. This Agreement may be executed
in two or more counterparts, each of which shall constitute an original,
but all of which, when together, shall constitute but one and the
same instrument, and shall become effective when one or more counterparts
have been signed by each Party hereto and delivered to the other Party.
In lieu of the original, a facsimile transmission or copy of the original
shall be as effective and enforceable as the original.
shall be as effective and enforceable as the original.
\end{enumerate}
\vfill{}
@ -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,38 +321,73 @@ 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">
<input type="hidden" name="hosted_button_id" value="EYXFS3SQPHYUL">
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" name="submit" alt="Donate to Kallithea via PayPal">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="EYXFS3SQPHYUL">
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" name="submit" alt="Donate to Kallithea via PayPal">
</form>
<p>Kallithea is a free software source code management system supporting two
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>
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">
<input type="hidden" name="hosted_button_id" value="V3DNW54NCNK46">
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" name="submit" alt="Donate to LibreHealth via PayPal">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="V3DNW54NCNK46">
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" name="submit" alt="Donate to LibreHealth via PayPal">
</form>
<p>LibreHealth is the foundation of a worldwide ecosystem of free and open
source Health IT innovation, and is a place where people can come together
to build tools that enhance the quality of healthcare around the
world. LibreHealth projects currently include: LibreHealth Toolkit, a
foundational base for building Health IT tools; LibreHealth EHR, an
electronic health record derived from best practices and technology from
leading open source systems; and LibreHealth Radiology, a specialized
distribution of Toolkit customized for radiology health care
professionals.</p>
source Health IT innovation, and is a place where people can come together
to build tools that enhance the quality of healthcare around the
world. LibreHealth projects currently include: LibreHealth Toolkit, a
foundational base for building Health IT tools; LibreHealth EHR, an
electronic health record derived from best practices and technology from
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>
@ -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,17 +729,32 @@ 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">
<input type="hidden" name="hosted_button_id" value="Y8WL47RVZJ3LQ">
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" name="submit" alt="Donate to Xapian via PayPal">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="Y8WL47RVZJ3LQ">
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" name="submit" alt="Donate to Xapian via PayPal">
</form>
<p>Xapian is a highly adaptable toolkit which allows developers to
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>
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