The following is the GNU All-permissive License as recommended in https://www.gnu.org/licenses/license-recommendations.en.html

Copyright (C) 2024 Free Software Foundation sysadmin@fsf.org

Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without any warranty.

Contributions are welcome. See https://savannah.gnu.org/maintenance/fsf/.

FSF Tech Notes Directory

General tech documentation useful to the FSF tech team and hopefully the public.

Contents

Bash Style Guide

Checklists - Similar to tickets

Debugging

Hardware

Services - Like tools, but they keep running

Storage

Tickets - How to handle various common & rare tickets

Tools - About the tools we depend on.

Background info

FSF tech team has an internal ikiwiki wiki called gluestick for various technical documentation. It was created in 2014, and it stores a lot of info that makes sense to keep private. But along the way, it accumulated a not insignificant amount of documentation that was worth making public. So, December 2023, we started migrated many pages here. It contains some references to things like sshing to hosts only the FSF tech team has access to. Just be aware and use common sense and feel free to improve. It might make sense to move them to a dedicated public ikiwiki at some point.

Contributing

Contributions are welcome. Send patches to https://lists.fsf.org/mailman/listinfo/tech-volunteer-meeting. This helps explain how to send a patch: https://git-send-email.io/.

Some documentation is somewhat duplicative of other sources like a man page, and it is here because it is the excerpt that FSF tech team or FSF volunteers found useful. So, if you aren't doing FSF volunteering, a contribution of that kind might be rejected.

Info on volunteering with the FSF tech team: https://libreplanet.org/wiki/Group:FSF:Tech_Team_Volunteers

Copyright header automation (new contributors can ignore this)

Adding header to new files

# Function to add standard copyright header to file, easier than
# copy/pasting. If you copy this and don't work for FSF, change the
# copyright holder to you or your employer depending on your situation.
fsf-sv-header() {
  local f
  local -a f_maybe
  if ! type -p sponge &>/dev/null; then
    echo "$0: error: missing dependency: sudo apt install moreutils" >&2
    return 1
  fi

  for f; do
    echo "adding header to $f"
    if <span class="createlink"> -s &#36;f </span>; then
      f_maybe=("$f")
    else
      f_maybe=()
    fi
    cat - "${f_maybe[@]}" <<EOF | sponge "$f"
The following is the GNU All-permissive License as recommended in
<https://www.gnu.org/licenses/license-recommendations.en.html>

Copyright (C) $(date +%Y) Free Software Foundation <sysadmin@fsf.org>

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.  This file is offered as-is,
without any warranty.

Contributions are welcome. See <https://savannah.gnu.org/maintenance/fsf/>.

EOF
  done
}

Changing copyright year on all the fsf files

from root of the repo, run

sed -i --follow-symlinks "4s/(C) [2-9][0-9][0-9][0-9] /(C) $(date +%Y) /" $(find fsf -type f) fsf.mdwn