Repost from /jadedctrl/libertybsd-scripts-mirror/issues/5 by g4jc
Hyperbola Project has been reviewing BSD kernels for an upcoming project and we decided to perform a license audit on LibertyBSD scripts / OpenBSD since it appears to be the closest project to our current goals.
Please see below the list of files that are currently affected. If FSF License team can confirm any of these are false positive it is appreciated to avoid work for our mutual free BSD-kernel projects.
Non-Free Microcode
The following files contains hex encoded binary (blob) firmware files - even though license header states BSD-3.
If sources exists they should be decoded and in readable form rather than pre-compiled and obfusicated, however we were not able to locate them.
Media Vision Pro AudioSpectrum License/Disclaimer (Non-Free)
General use is prohibited in this license.
Feel free to use this header file in any application you create that
has support for the Media Vision Pro AudioSpectrum second generation
sound cards. Other uses prohibited without prior permission.
dev/isa/pasreg.h
File with Disclaimer only
The following files contains a BSD style disclaimer, however it does not carry a license to give users the four essential freedoms.
The following files do not have an appropriate license header. (Some may be autogenerated from other compatible licensed files, but needs investigating)
DTS Generated files appear to be generated from freely licensed files, but the output is non-readable code.
These should be re-generated with DTS from the source code to ensure it is free software.
arch/octeon/octeon/cn3xxx_dts.S -> Generated from -> arch/octeon/octeon/cn3xxx.dts
arch/arm64/stand/efiboot/dt_blob.S -> Generated from -> arch/arm64/stand/efiboot/acpi.dts
Files with missing Licenses (free, but license not included)
The following files do not have a license, since "Public Domain" is ambigious.
These should use a formal tool such as CC0 to enable Public Domain to the fullest extent permitted by law.
Hyperbola Project has been reviewing BSD kernels for an upcoming project and we decided to perform a license audit on LibertyBSD scripts / OpenBSD since it appears to be the closest project to our current goals.
Glad to be a part— Hyperbola's my favourite LiGNUx, personally. Mind if I ask what the project is?
Anyway, thanks for the report, it's very comprehensive. I'll look into removing/working around any non-free listings. :)
> Hyperbola Project has been reviewing BSD kernels for an upcoming project and we decided to perform a license audit on LibertyBSD scripts / OpenBSD since it appears to be the closest project to our current goals.
Glad to be a part— Hyperbola's my favourite LiGNUx, personally. Mind if I ask what the project is?
Anyway, thanks for the report, it's very comprehensive. I'll look into removing/working around any non-free listings. :)
> Non-free Microcode: sys/dev/microcode/isp/*
Got it removed with [7a8a1d98bc9c8a4e8e56f6056e18ec94c171cdbb](https://git.xwx.moe/libertybsd-scripts-mirror.git/commit/7a8a1d98bc9c8a4e8e56f6056e18ec94c171cdbb).
The last paragraph of the SoftFloat 2a License is--
Derivative works are acceptable, even for commercial purposes, so long as (1) they include prominent notice that the work is derivative, and (2) they include prominent notice akin to these four paragraphs for those parts of this code that are retained.
The 2c license's last paragraph (clarified), is--
The following are expressly permitted, even for commercial purposes: (1) distribution of SoftFloat in whole or in part, as long as this and other legal notices remain and are prominent, and provided also that, for a partial distribution, prominent notice is given that it is a subset of the original; and (2) inclusion or use of SoftFloat in whole or in part in a derivative work, provided that the use restrictions above are met and the minimal documentation requirements stated in the source code are satisfied.
It doesn't look like that the 2a used by OBSD prevents distribution, it just requires attribution (like the 2c), even if the 2c is much better-worded.
Right now QEMU uses code under the 2a license (fpu/softfloat-specialize.inc.c, fpu/softfloat.c, include/fpu/softfloat*.h, target/m68k/softfloat.c, target/m68k/softfloat_fpsp_tables.h), and consciously switched to it to be GPLv2-compatible.
QEMU is listed in the FSD without any problems, and isn't patched by either Hyperbola or Parabola.
It looks like 2a has a precedent of being OK freedom-wise, but it's also possible that no-one's noticed it in QEMU.
> SoftFloat 2a License (Non-free): sys/lib/libkern/milieu.h,softfloat*
The last paragraph of the SoftFloat 2a License is--
> Derivative works are acceptable, even for commercial purposes, so long as (1) they include prominent notice that the work is derivative, and (2) they include prominent notice akin to these four paragraphs for those parts of this code that are retained.
The 2c license's last paragraph (clarified), is--
> The following are expressly permitted, even for commercial purposes: (1) distribution of SoftFloat in whole or in part, as long as this and other legal notices remain and are prominent, and provided also that, for a partial distribution, prominent notice is given that it is a subset of the original; and (2) inclusion or use of SoftFloat in whole or in part in a derivative work, provided that the use restrictions above are met and the minimal documentation requirements stated in the source code are satisfied.
It doesn't look like that the 2a used by OBSD prevents distribution, it just requires attribution (like the 2c), even if the 2c is much better-worded.
Right now QEMU uses code under the 2a license ([fpu/softfloat-specialize.inc.c](https://github.com/qemu/qemu/blob/master/fpu/softfloat-specialize.inc.c), fpu/softfloat.c, include/fpu/softfloat*.h, target/m68k/softfloat.c, target/m68k/softfloat_fpsp_tables.h), and consciously [switched to it](https://lists.gnu.org/archive/html/qemu-devel/2013-04/msg05807.html) to be GPLv2-compatible.
QEMU is listed in the [FSD](https://directory.fsf.org/wiki/QEMU) without any problems, and isn't patched by either [Hyperbola](https://www.hyperbola.info/packages/extra/x86_64/qemu/) or [Parabola](https://www.parabola.nu/packages/extra/x86_64/qemu/).
It looks like 2a has a precedent of being OK freedom-wise, but it's also possible that no-one's noticed it in QEMU.
> Media Vision Pro AudioSpectrum License/Disclaimer: sys/dev/isa/pasreg.h
Taken out with [116b0190d21b890bf074689eb584a4f289296e33](https://git.xwx.moe/libertybsd-scripts-mirror.git/commit/116b0190d21b890bf074689eb584a4f289296e33), the PAS device was removed.
File with disclaimer only: lib/libkern/arch/arm/divsi3.S
File removed with ca56347765. ARM is a no-go for LibertyBSD anyway, really.
Worth sorting out upstream, though, I'll check it out.
> File with disclaimer only: lib/libkern/arch/arm/divsi3.S
File removed with [ca56347765](https://notabug.org/LibertyBSD/libertybsd-scripts/commit/ca5634776529be4deab8bff6b07b6fcd6de9c87c). ARM is a no-go for LibertyBSD anyway, really.
Worth sorting out upstream, though, I'll check it out.
Repost from /jadedctrl/libertybsd-scripts-mirror/issues/5 by g4jc
Hyperbola Project has been reviewing BSD kernels for an upcoming project and we decided to perform a license audit on LibertyBSD scripts / OpenBSD since it appears to be the closest project to our current goals.
Please see below the list of files that are currently affected. If FSF License team can confirm any of these are false positive it is appreciated to avoid work for our mutual free BSD-kernel projects.
Non-Free Microcode
The following files contains hex encoded binary (blob) firmware files - even though license header states BSD-3. If sources exists they should be decoded and in readable form rather than pre-compiled and obfusicated, however we were not able to locate them.
dev/microcode/isp/asm_1040.h
dev/microcode/isp/asm_1080.h
dev/microcode/isp/asm_12160.h
dev/microcode/isp/asm_2100.h
dev/microcode/isp/asm_2200.h
dev/microcode/isp/asm_2300.h
dev/microcode/isp/asm_2400.h
dev/microcode/isp/asm_2500.h
dev/microcode/isp/asm_sbus.h
SoftFloat 2a License (Non-free)
The following files do not allow distribution. This was fixed in newer versions, including SoftFloat 3.
lib/libkern/milieu.h
lib/libkern/softfloat.c
lib/libkern/softfloat.h
lib/libkern/softfloat-macros.h
lib/libkern/softfloat-specialize.h
Media Vision Pro AudioSpectrum License/Disclaimer (Non-Free)
General use is prohibited in this license.
dev/isa/pasreg.h
File with Disclaimer only
The following files contains a BSD style disclaimer, however it does not carry a license to give users the four essential freedoms.
lib/libkern/arch/arm/divsi3.S
Files without License
The following files do not have an appropriate license header.
arch/alpha/include/mutex.h
arch/alpha/include/reloc.h
arch/alpha/include/spinlock.h
arch/alpha/stand/boot/disk.h
arch/alpha/stand/netboot/conf.c
arch/alpha/stand/netboot/dev_net.h
arch/alpha/stand/netboot/getsecs.c
arch/alpha/stand/netboot/rpcc.S
arch/alpha/stand/puts.c
arch/amd64/include/cacheinfo.h
arch/amd64/include/fpu.h
arch/amd64/include/frameasm.h
arch/amd64/include/intrdefs.h
arch/amd64/include/mpconfig.h
arch/amd64/include/mutex.h
arch/amd64/include/setjmp.h
arch/amd64/include/spinlock.h
arch/amd64/include/sysarch.h
arch/amd64/pci/aapic.c
arch/amd64/stand/biosboot/ld.script
arch/amd64/stand/efi32/ldscript.i386
arch/amd64/stand/efi64/ldscript.amd64
arch/amd64/stand/efiboot/ldscript.amd64
arch/amd64/stand/efiboot/ldscript.i386
arch/amd64/stand/etc/genassym.cf
arch/arm/armv7/armv7reg.h
arch/arm/armv7/armv7var.h
arch/arm/conf/kern.ldscript
arch/arm/include/cdefs.h
arch/arm/include/machdep.h
arch/arm/include/mutex.h
arch/arm/include/reloc.h
arch/arm/include/setjmp.h
arch/arm/include/spinlock.h
arch/arm64/conf/kern.ldscript
arch/arm64/include/cdefs.h
arch/arm64/include/machdep.h
arch/arm64/include/mutex.h
arch/arm64/include/reloc.h
arch/arm64/include/setjmp.h
arch/arm64/stand/efiboot/disk.h
arch/arm64/stand/efiboot/ldscript.arm64
arch/armv7/include/_float.h
arch/armv7/include/_types.h
arch/armv7/include/apmvar.h
arch/armv7/include/asm.h
arch/armv7/include/bus.h
arch/armv7/include/cdefs.h
arch/armv7/include/conf.h
arch/armv7/include/cpu.h
arch/armv7/include/db_machdep.h
arch/armv7/include/disklabel.h
arch/armv7/include/endian.h
arch/armv7/include/fdt.h
arch/armv7/include/fp.h
arch/armv7/include/frame.h
arch/armv7/include/ieee.h
arch/armv7/include/ieeefp.h
arch/armv7/include/limits.h
arch/armv7/include/lock.h
arch/armv7/include/math.h
arch/armv7/include/mplock.h
arch/armv7/include/openpromio.h
arch/armv7/include/pcb.h
arch/armv7/include/pci_machdep.h
arch/armv7/include/pmap.h
arch/armv7/include/proc.h
arch/armv7/include/profile.h
arch/armv7/include/ptrace.h
arch/armv7/include/reg.h
arch/armv7/include/reloc.h
arch/armv7/include/rtc.h
arch/armv7/include/setjmp.h
arch/armv7/include/signal.h
arch/armv7/include/stdarg.h
arch/armv7/include/sysarch.h
arch/armv7/include/trap.h
arch/armv7/omap/omehcivar.h
arch/armv7/stand/efiboot/disk.h
arch/armv7/stand/efiboot/ldscript.arm
arch/hppa/include/setjmp.h
arch/hppa/include/spinlock.h
arch/hppa/include/varargs.h
arch/hppa/stand/boot/ld.script
arch/hppa/stand/cdboot/ld.script
arch/hppa/stand/libsa/dev_hppa.h
arch/i386/include/intrdefs.h
arch/i386/include/joystick.h
arch/i386/include/mutex.h
arch/i386/include/pic.h
arch/i386/include/setjmp.h
arch/i386/include/spinlock.h
arch/i386/include/sysarch.h
arch/i386/stand/biosboot/ld.script
arch/landisk/include/_float.h
arch/landisk/include/_types.h
arch/landisk/include/asm.h
arch/landisk/include/cdefs.h
arch/landisk/include/cpu.h
arch/landisk/include/cputypes.h
arch/landisk/include/db_machdep.h
arch/landisk/include/disklabel.h
arch/landisk/include/endian.h
arch/landisk/include/exec.h
arch/landisk/include/fpu.h
arch/landisk/include/frame.h
arch/landisk/include/ieee.h
arch/landisk/include/ieeefp.h
arch/landisk/include/kcore.h
arch/landisk/include/limits.h
arch/landisk/include/lock.h
arch/landisk/include/mutex.h
arch/landisk/include/pcb.h
arch/landisk/include/pmap.h
arch/landisk/include/proc.h
arch/landisk/include/profile.h
arch/landisk/include/psl.h
arch/landisk/include/pte.h
arch/landisk/include/ptrace.h
arch/landisk/include/reg.h
arch/landisk/include/reloc.h
arch/landisk/include/setjmp.h
arch/landisk/include/signal.h
arch/landisk/include/spinlock.h
arch/landisk/include/stdarg.h
arch/landisk/include/trap.h
arch/landisk/include/varargs.h
arch/landisk/include/vmparam.h
arch/landisk/stand/boot/getsecs.c
arch/loongson/conf/ld.script
arch/loongson/include/_float.h
arch/loongson/include/mplock.h
arch/loongson/include/mutex.h
arch/loongson/stand/boot/ld.script
arch/luna88k/include/_float.h
arch/luna88k/stand/boot/dev_net.h
arch/m88k/include/exec.h
arch/m88k/include/setjmp.h
arch/m88k/include/spinlock.h
arch/m88k/include/stdarg.h
arch/m88k/include/varargs.h
arch/macppc/include/_float.h
arch/macppc/include/asm.h
arch/macppc/include/cdefs.h
arch/macppc/include/db_machdep.h
arch/macppc/include/endian.h
arch/macppc/include/exec.h
arch/macppc/include/fpu.h
arch/macppc/include/frame.h
arch/macppc/include/ieee.h
arch/macppc/include/ieeefp.h
arch/macppc/include/intr.h
arch/macppc/include/ipkdb.h
arch/macppc/include/kbio.h
arch/macppc/include/kcore.h
arch/macppc/include/limits.h
arch/macppc/include/lock.h
arch/macppc/include/mplock.h
arch/macppc/include/mutex.h
arch/macppc/include/pcb.h
arch/macppc/include/pio.h
arch/macppc/include/pmap.h
arch/macppc/include/proc.h
arch/macppc/include/profile.h
arch/macppc/include/psl.h
arch/macppc/include/pte.h
arch/macppc/include/ptrace.h
arch/macppc/include/reg.h
arch/macppc/include/reloc.h
arch/macppc/include/setjmp.h
arch/macppc/include/signal.h
arch/macppc/include/spinlock.h
arch/macppc/include/stdarg.h
arch/macppc/include/trap.h
arch/macppc/include/varargs.h
arch/macppc/stand/cache.c
arch/macppc/stand/hfs.h
arch/mips64/include/mutex.h
arch/octeon/conf/ld.script
arch/octeon/include/_float.h
arch/octeon/include/mplock.h
arch/octeon/include/mutex.h
arch/powerpc/include/mutex.h
arch/powerpc/include/setjmp.h
arch/powerpc/include/spinlock.h
arch/sgi/conf/ld.script
arch/sgi/stand/boot32/ld.script
arch/sgi/stand/bootecoff/ld.script
arch/sgi/include/asm.h
arch/sgi/include/cdefs.h
arch/sgi/include/cpustate.h
arch/sgi/include/db_machdep.h
arch/sgi/include/endian.h
arch/sgi/include/exec.h
arch/sgi/include/_float.h
arch/sgi/include/frame.h
arch/sgi/include/ieeefp.h
arch/sgi/include/ieee.h
arch/sgi/include/kcore.h
arch/sgi/include/limits.h
arch/sgi/include/memconf.h
arch/sgi/include/mips_opcode.h
arch/sgi/include/mplock.h
arch/sgi/include/mutex.h
arch/sgi/include/pcb.h
arch/sgi/include/pmap.h
arch/sgi/include/proc.h
arch/sgi/include/profile.h
arch/sgi/include/pte.h
arch/sgi/include/ptrace.h
arch/sgi/include/regdef.h
arch/sgi/include/reg.h
arch/sgi/include/regnum.h
arch/sgi/include/setjmp.h
arch/sgi/include/signal.h
arch/sgi/include/spinlock.h
arch/sgi/include/stdarg.h
arch/sgi/include/trap.h
arch/sgi/include/varargs.h
arch/sh/include/cdefs.h
arch/sh/include/exec.h
arch/sh/include/mutex.h
arch/sh/include/reloc.h
arch/sh/include/setjmp.h
arch/sh/include/sh_opcode.h
arch/sparc64/include/cdefs.h
arch/sparc64/include/endian.h
arch/sparc64/include/exec.h
arch/sparc64/include/mutex.h
arch/sparc64/include/setjmp.h
arch/sparc64/include/spinlock.h
dev/ic/i8042reg.h
dev/ic/i8237reg.h
dev/ic/pcdisplay.h
dev/isa/if_ie507.h
dev/isa/if_ieatt.h
dev/isa/isadmareg.h
dev/isa/mpu_isapnp.c
dev/isa/pcppireg.h
dev/isa/spkrio.h
dev/isa/wdsreg.h
dev/pci/drm/amd/display/dc/core/dc_link_dp.c
dev/pci/drm/amd/display/dc/core/dc_link_hwss.c
dev/pci/drm/radeon/cayman_reg_safe.h
dev/pci/drm/radeon/evergreen_reg_safe.h
dev/pci/drm/radeon/r100_reg_safe.h
dev/pci/drm/radeon/r200_reg_safe.h
dev/pci/drm/radeon/r300_reg_safe.h
dev/pci/drm/radeon/r420_reg_safe.h
dev/pci/drm/radeon/r600_reg_safe.h
dev/pci/drm/radeon/rn50_reg_safe.h
dev/pci/drm/radeon/rs600_reg_safe.h
dev/pci/drm/radeon/rv515_reg_safe.h
dev/pckbc/pckbdreg.h
dev/pckbc/pckbdvar.h
dev/pckbc/pmsreg.h
dev/wscons/ascii.h
dev/wscons/unicode.h
dev/wscons/wscons_features.h
dev/wscons/wsdisplay_usl_io.h
lib/libkern/arch/amd64/bcmp.S
lib/libkern/arch/i386/DEFS.h
lib/libkern/arch/m88k/bcopy.S
lib/libkern/arch/m88k/memcpy.S
lib/libkern/arch/m88k/memmove.S
lib/libkern/arch/mips64/DEFS.h
lib/libkern/funcs.h
lib/libsa/bootparam.h
lib/libsa/globals.c
lib/libsa/netif.h
lib/libz/zopenbsd.c
nfs/krpc.h
scsi/scsi_debug.h
scsi/scsi_message.h
sys/ataio.h
sys/cdio.h
sys/scsiio.h
sys/sem.h
ufs/ufs/ufs_quota_stub.c
uvm/uvmexp.h
Files without License (Auto-generated)
The following files do not have an appropriate license header. (Some may be autogenerated from other compatible licensed files, but needs investigating)
arch/hppa/dev/cpudevs_data.h
arch/hppa/dev/cpudevs.h
arch/sgi/gio/giodevs.h
arch/sgi/gio/giodevs_data.h
dev/isa/pnpdevs.h
dev/microcode/aic7xxx/aic79xx_reg.h
dev/microcode/aic7xxx/aic79xx_seq.h
dev/microcode/aic7xxx/aic7xxx_reg.h
dev/microcode/aic7xxx/aic7xxx_seq.h
dev/onewire/onewiredevs.h
dev/onewire/onewiredevs_data.h
dev/pci/drm/i915/devlist.awk
dev/pci/drm/i915/i915_devlist.h
dev/pci/drm/radeon/devlist.awk
dev/pci/drm/radeon/radeon_devlist.h
dev/tc/tcdevs_data.h
dev/videomode/videomode.c
kern/init_sysent.c
kern/syscalls.c
sys/syscall.h
sys/syscallargs.h
lib/libz/crc32.h
lib/libz/inffixed.h
lib/libz/trees.h
Files without license (Pre-Generated Code)
DTS Generated files appear to be generated from freely licensed files, but the output is non-readable code. These should be re-generated with DTS from the source code to ensure it is free software.
arch/octeon/octeon/cn3xxx_dts.S
-> Generated from ->arch/octeon/octeon/cn3xxx.dts
arch/arm64/stand/efiboot/dt_blob.S
-> Generated from ->arch/arm64/stand/efiboot/acpi.dts
Files with missing Licenses (free, but license not included)
arch/armv7/exynos/ec_commands.h
Comes from ChromiumOS: https://chromium.googlesource.com/chromiumos/platform/ec/+/refs/heads/master/include/ec_commands.hdev/pci/drm/amd/amdgpu/amdgpu_test.c:// SPDX-License-Identifier: GPL-2.0 OR MIT
dev/pci/drm/amd/amdgpu/amdgpu_trace_points.c:// SPDX-License-Identifier: GPL-2.0
dev/pci/drm/drm_global.c:// SPDX-License-Identifier: GPL-2.0 OR MIT
dev/pci/drm/drm_panel_orientation_quirks.c:/* SPDX-License-Identifier: MIT */
dev/pci/drm/i915/i915_gem_batch_pool.c: * SPDX-License-Identifier: MIT
dev/pci/drm/i915/i915_gem_batch_pool.h: * SPDX-License-Identifier: MIT
dev/pci/drm/i915/i915_gpu_error.h: * SPDX-License-Identifier: MIT
dev/pci/drm/i915/i915_pmu.h: * SPDX-License-Identifier: MIT
dev/pci/drm/i915/i915_query.c: * SPDX-License-Identifier: MIT
dev/pci/drm/i915/i915_query.h: * SPDX-License-Identifier: MIT
dev/pci/drm/i915/i915_scheduler.h: * SPDX-License-Identifier: MIT
dev/pci/drm/i915/i915_sw_fence.c: * SPDX-License-Identifier: MIT
dev/pci/drm/i915/i915_sw_fence.h: * SPDX-License-Identifier: MIT
dev/pci/drm/i915/i915_timeline.c: * SPDX-License-Identifier: MIT
dev/pci/drm/i915/intel_gpu_commands.h: * SPDX-License-Identifier: MIT
dev/pci/drm/i915/intel_hdcp.c:/* SPDX-License-Identifier: MIT */
dev/pci/drm/i915/intel_huc_fw.c: * SPDX-License-Identifier: MIT
dev/pci/drm/i915/intel_huc_fw.h: * SPDX-License-Identifier: MIT
dev/pci/drm/i915/intel_lrc_reg.h: * SPDX-License-Identifier: MIT
dev/pci/drm/i915/intel_ringbuffer.h:/* SPDX-License-Identifier: MIT */
dev/pci/drm/i915/intel_wopcm.c: * SPDX-License-Identifier: MIT
dev/pci/drm/i915/intel_wopcm.h: * SPDX-License-Identifier: MIT
dev/pci/drm/i915/intel_workarounds.c: * SPDX-License-Identifier: MIT
dev/pci/drm/i915/intel_workarounds.h: * SPDX-License-Identifier: MIT
dev/pci/drm/include/drm/drm_audio_component.h:// SPDX-License-Identifier: MIT
dev/pci/drm/include/drm/drm_hdcp.h:/* SPDX-License-Identifier: MIT */
dev/pci/drm/include/drm/drm_pciids.h:/* SPDX-License-Identifier: MIT */
dev/pci/drm/include/drm/drm_utils.h:/* SPDX-License-Identifier: MIT */
dev/pci/drm/radeon/mkregtable.c:// SPDX-License-Identifier: MIT
dev/pci/drm/radeon/r100_track.h:/* SPDX-License-Identifier: MIT */
dev/pci/drm/radeon/radeon_dp_mst.c:// SPDX-License-Identifier: MIT
dev/pci/drm/radeon/radeon_legacy_tv.c:// SPDX-License-Identifier: MIT
dev/pci/drm/radeon/radeon_test.c:// SPDX-License-Identifier: GPL-2.0 OR MIT
dev/pci/drm/radeon/radeon_trace.h:/* SPDX-License-Identifier: MIT */
dev/pci/drm/radeon/radeon_trace_points.c:// SPDX-License-Identifier: MIT
dev/pci/drm/ttm/ttm_agp_backend.c:/* SPDX-License-Identifier: GPL-2.0 OR MIT */
dev/pci/drm/ttm/ttm_bo.c:/* SPDX-License-Identifier: GPL-2.0 OR MIT */
dev/pci/drm/ttm/ttm_bo_manager.c:/* SPDX-License-Identifier: GPL-2.0 OR MIT */
dev/pci/drm/ttm/ttm_bo_util.c:/* SPDX-License-Identifier: GPL-2.0 OR MIT */
dev/pci/drm/ttm/ttm_bo_vm.c:/* SPDX-License-Identifier: GPL-2.0 OR MIT */
dev/pci/drm/ttm/ttm_execbuf_util.c:/* SPDX-License-Identifier: GPL-2.0 OR MIT */
dev/pci/drm/ttm/ttm_memory.c:/* SPDX-License-Identifier: GPL-2.0 OR MIT */
dev/pci/drm/ttm/ttm_tt.c:/* SPDX-License-Identifier: GPL-2.0 OR MIT */
These need SPDX identifiers replaced with actual licenses in the header since SPDX doesn't work/isn't used in OpenBSD-tree.
efi/include/arm/efibind.h
efi/include/arm64/efibind.h
These two are possibly BSD-2, but need to know more in order to license it. Was previously discussed on OpenBSD Archive. http://openbsd-archive.7691.n7.nabble.com/arm64-add-efibind-header-for-efiboot-8-td309755.html Similar project with license headers in trunk: https://github.com/vathpela/gnu-efi
Files under "Public Domain"
The following files do not have a license, since "Public Domain" is ambigious. These should use a formal tool such as CC0 to enable Public Domain to the fullest extent permitted by law.
crypto/cast.h
crypto/poly1305.h
crypto/md5.h
crypto/rijndael.c
crypto/poly1305.c
crypto/sha1.c
crypto/castsb.h
crypto/cast.c
crypto/sha1.h
crypto/rijndael.h
crypto/chacha_private.h
crypto/md5.c
dev/wscons/wscons_features.h
dev/fdt/pscivar.h
dev/fdt/sxiccmu_clocks.h
dev/fdt/rkclock_clocks.h
dev/fdt/imxccm_clocks.h
dev/fdt/sxipio_pins.h
dev/fdt/mvpinctrl_pins.h
dev/acpi/efi.h
dev/pci/drm/i915/intel_stolen.c
dev/pci/drm/i915/i915_trace.h
dev/pci/drm/drm_bridge.c
dev/pci/drm/include/asm/pgtable.h
dev/pci/drm/include/asm/div64.h
dev/pci/drm/include/asm/fpu/api.h
dev/pci/drm/include/asm/bitsperlong.h
dev/pci/drm/include/asm/byteorder.h
dev/pci/drm/include/asm/iosf_mbi.h
dev/pci/drm/include/generated/utsrelease.h
dev/pci/drm/include/generated/autoconf.h
dev/pci/drm/include/video/mipi_display.h
dev/pci/drm/include/media/cec-notifier.h
dev/pci/drm/include/linux/firmware.h
dev/pci/drm/include/linux/processor.h
dev/pci/drm/include/linux/jiffies.h
dev/pci/drm/include/linux/poll.h
dev/pci/drm/include/linux/dma-fence.h
dev/pci/drm/include/linux/moduleparam.h
dev/pci/drm/include/linux/prefetch.h
dev/pci/drm/include/linux/hrtimer.h
dev/pci/drm/include/linux/module.h
dev/pci/drm/include/linux/seq_file.h
dev/pci/drm/include/linux/gfp.h
dev/pci/drm/include/linux/agp_backend.h
dev/pci/drm/include/linux/nospec.h
dev/pci/drm/include/linux/ratelimit.h
dev/pci/drm/include/linux/seqlock.h
dev/pci/drm/include/linux/sizes.h
dev/pci/drm/include/linux/random.h
dev/pci/drm/include/linux/mod_devicetable.h
dev/pci/drm/include/linux/stringify.h
dev/pci/drm/include/linux/power_supply.h
dev/pci/drm/include/linux/uuid.h
dev/pci/drm/include/linux/fs.h
dev/pci/drm/include/linux/async.h
dev/pci/drm/include/linux/sync_file.h
dev/pci/drm/include/linux/interrupt.h
dev/pci/drm/include/linux/kernel.h
dev/pci/drm/include/linux/linkage.h
dev/pci/drm/include/linux/pagevec.h
dev/pci/drm/include/linux/err.h
dev/pci/drm/include/linux/spinlock_types.h
dev/pci/drm/include/linux/delay.h
dev/pci/drm/include/linux/dmi.h
dev/pci/drm/include/linux/stop_machine.h
dev/pci/drm/include/linux/io-mapping.h
dev/pci/drm/include/linux/capability.h
dev/pci/drm/include/linux/vga_switcheroo.h
dev/pci/drm/include/linux/types.h
dev/pci/drm/include/linux/sysfs.h
dev/pci/drm/include/linux/log2.h
dev/pci/drm/include/linux/rcupdate.h
dev/pci/drm/include/linux/dma-mapping.h
dev/pci/drm/include/linux/file.h
dev/pci/drm/include/linux/timekeeping.h
dev/pci/drm/include/linux/tracepoint.h
dev/pci/drm/include/linux/sysrq.h
dev/pci/drm/include/linux/backlight.h
dev/pci/drm/include/linux/math64.h
dev/pci/drm/include/linux/kgdb.h
dev/pci/drm/include/linux/bottom_half.h
dev/pci/drm/include/linux/mm.h
dev/pci/drm/include/linux/dma-fence-array.h
dev/pci/drm/include/linux/lockdep.h
dev/pci/drm/include/linux/kthread.h
dev/pci/drm/include/linux/pm_runtime.h
dev/pci/drm/include/linux/overflow.h
dev/pci/drm/include/linux/kobject.h
dev/pci/drm/include/linux/cpufreq.h
dev/pci/drm/include/linux/printk.h
dev/pci/drm/include/linux/cpumask.h
dev/pci/drm/include/linux/sched/signal.h
dev/pci/drm/include/linux/sched/clock.h
dev/pci/drm/include/linux/perf_event.h
dev/pci/drm/include/linux/refcount.h
dev/pci/drm/include/linux/kconfig.h
dev/pci/drm/include/linux/fb.h
dev/pci/drm/include/linux/errno.h
dev/pci/drm/include/linux/ioport.h
dev/pci/drm/include/linux/llist.h
dev/pci/drm/include/linux/pm_qos.h
dev/pci/drm/include/linux/hardirq.h
dev/pci/drm/include/linux/vgaarb.h
dev/pci/drm/include/linux/typecheck.h
dev/pci/drm/include/linux/irqflags.h
dev/pci/drm/include/linux/slab.h
dev/pci/drm/include/linux/pid.h
dev/pci/drm/include/linux/export.h
dev/pci/drm/include/linux/swap.h
dev/pci/drm/include/linux/mutex.h
dev/pci/drm/include/linux/preempt.h
dev/pci/drm/include/linux/io.h
dev/pci/drm/include/linux/smp.h
dev/pci/drm/include/linux/wait_bit.h
dev/pci/drm/include/linux/pwm.h
dev/pci/drm/include/linux/device.h
dev/pci/drm/include/linux/notifier.h
dev/pci/drm/include/linux/string.h
dev/pci/drm/include/linux/compiler.h
dev/pci/drm/include/linux/console.h
dev/pci/drm/include/linux/hash.h
dev/pci/drm/include/linux/reboot.h
dev/pci/drm/include/linux/pm.h
dev/pci/drm/include/linux/rwlock_types.h
dev/pci/drm/include/linux/irqreturn.h
dev/pci/drm/include/linux/spinlock.h
dev/pci/drm/include/linux/irq.h
dev/pci/drm/include/linux/acpi.h
dev/pci/drm/include/acpi/video.h
dev/pci/drm/include/drm/drm_mipi_dsi.h
dev/pci/drm/include/drm/drm_gem_framebuffer_helper.h
dev/pci/drm/include/drm/drm_lease.h
dev/pci/drm/include/drm/drm_writeback.h
dev/pci/drm/drm_gem_framebuffer_helper.c
dev/pci/drm/drm_trace.h
lib/libkern/htons.c
lib/libkern/htonl.c
lib/libkern/explicit_bzero.c
lib/libkern/ffs.c
lib/libkern/arch/i386/ffs.S
lib/libkern/arch/i386/memset.S
lib/libkern/arch/i386/bcmp.S
lib/libkern/arch/i386/memcmp.S
lib/libkern/arch/i386/memchr.S
lib/libkern/arch/i386/bzero.S
lib/libkern/arch/i386/strcmp.S
lib/libkern/arch/amd64/ffs.S
lib/libkern/arch/amd64/memset.S
lib/libkern/arch/amd64/strrchr.S
lib/libkern/arch/amd64/memcmp.S
lib/libkern/arch/amd64/memchr.S
lib/libkern/arch/amd64/bzero.S
lib/libkern/arch/amd64/strcmp.S
lib/libkern/arch/sh/movstrSI12_i4.S
lib/libsa/rijndael.c
lib/libsa/sha1.c
lib/libsa/explicit_bzero.c
lib/libsa/sha1.h
lib/libsa/rijndael.h
isofs/udf/udf_extern.h
arch/alpha/include/ieeefp.h
arch/alpha/pci/pci_6600.h
arch/sparc64/include/ieeefp.h
arch/sparc64/include/mplock.h
arch/hppa/include/atomic.h
arch/hppa/include/lock.h
arch/hppa/include/ieeefp.h
arch/luna88k/include/exec.h
arch/luna88k/include/ieee.h
arch/luna88k/include/frame.h
arch/luna88k/include/atomic.h
arch/luna88k/include/lock.h
arch/luna88k/include/varargs.h
arch/luna88k/include/limits.h
arch/luna88k/include/ptrace.h
arch/luna88k/include/ieeefp.h
arch/luna88k/include/db_machdep.h
arch/luna88k/include/m8820x.h
arch/luna88k/include/pmap.h
arch/luna88k/include/mmu.h
arch/luna88k/include/mplock.h
arch/luna88k/include/psl.h
arch/luna88k/include/tcb.h
arch/luna88k/include/cpu.h
arch/luna88k/include/reg.h
arch/luna88k/include/stdarg.h
arch/luna88k/include/signal.h
arch/luna88k/include/pcb.h
arch/luna88k/include/proc.h
arch/luna88k/include/fpu.h
arch/luna88k/include/kcore.h
arch/luna88k/include/setjmp.h
arch/luna88k/include/cdefs.h
arch/luna88k/include/fenv.h
arch/luna88k/include/mutex.h
arch/luna88k/include/asm_macro.h
arch/luna88k/include/asm.h
arch/luna88k/include/pmap_table.h
arch/luna88k/include/endian.h
arch/luna88k/include/_types.h
arch/luna88k/include/vmparam.h
arch/luna88k/include/cmmu.h
arch/luna88k/include/m88100.h
arch/luna88k/include/profile.h
arch/luna88k/include/spinlock.h
arch/luna88k/include/trap.h
arch/luna88k/include/reloc.h
arch/luna88k/stand/boot/bcd.c
arch/i386/include/lock.h
arch/i386/include/ieeefp.h
arch/i386/include/mplock.h
arch/i386/include/cdefs.h
arch/macppc/include/atomic.h
arch/macppc/include/tcb.h
arch/macppc/include/fenv.h
arch/macppc/include/_types.h
arch/sgi/include/conf.h
arch/sgi/include/atomic.h
arch/sgi/include/sysarch.h
arch/sgi/include/lock.h
arch/sgi/include/tcb.h
arch/sgi/include/fpu.h
arch/sgi/include/fenv.h
arch/sgi/include/_types.h
arch/sgi/include/vmparam.h
arch/sgi/include/reloc.h
arch/sgi/stand/libsa/heap.h
arch/sgi/stand/boot/version
arch/arm64/include/atomic.h
arch/arm64/include/ieeefp.h
arch/arm64/include/mplock.h
arch/arm64/include/internal_types.h
arch/arm64/include/kcore.h
arch/arm/include/atomic.h
arch/arm/include/lock.h
arch/arm/include/ieeefp.h
arch/arm/include/mplock.h
arch/arm/include/kcore.h
arch/arm/include/swi.h
arch/mips64/include/atomic.h
arch/mips64/include/lock.h
arch/mips64/include/ieeefp.h
arch/mips64/include/mplock.h
arch/mips64/include/setjmp.h
arch/mips64/include/spinlock.h
arch/amd64/include/exec.h
arch/amd64/include/lock.h
arch/amd64/include/ieeefp.h
arch/amd64/include/mplock.h
arch/amd64/include/cdefs.h
arch/amd64/amd64/genassym.cf
arch/loongson/include/param.h
arch/loongson/include/exec.h
arch/loongson/include/ieee.h
arch/loongson/include/frame.h
arch/loongson/include/atomic.h
arch/loongson/include/sysarch.h
arch/loongson/include/lock.h
arch/loongson/include/varargs.h
arch/loongson/include/limits.h
arch/loongson/include/ptrace.h
arch/loongson/include/ieeefp.h
arch/loongson/include/loongson3.h
arch/loongson/include/db_machdep.h
arch/loongson/include/pmap.h
arch/loongson/include/mips_opcode.h
arch/loongson/include/loongson2.h
arch/loongson/include/tcb.h
arch/loongson/include/reg.h
arch/loongson/include/stdarg.h
arch/loongson/include/signal.h
arch/loongson/include/regnum.h
arch/loongson/include/pte.h
arch/loongson/include/disklabel.h
arch/loongson/include/regdef.h
arch/loongson/include/memconf.h
arch/loongson/include/pcb.h
arch/loongson/include/proc.h
arch/loongson/include/fpu.h
arch/loongson/include/kcore.h
arch/loongson/include/setjmp.h
arch/loongson/include/cdefs.h
arch/loongson/include/fenv.h
arch/loongson/include/asm.h
arch/loongson/include/endian.h
arch/loongson/include/_types.h
arch/loongson/include/vmparam.h
arch/loongson/include/cpustate.h
arch/loongson/include/profile.h
arch/loongson/include/spinlock.h
arch/loongson/include/trap.h
arch/loongson/include/reloc.h
arch/m88k/include/atomic.h
arch/m88k/include/mplock.h
arch/m88k/include/cdefs.h
arch/m88k/include/reloc.h
arch/powerpc/include/ieeefp.h
arch/powerpc/include/cdefs.h
arch/armv7/include/exec.h
arch/armv7/include/atomic.h
arch/armv7/include/tcb.h
arch/armv7/include/fenv.h
arch/armv7/include/mutex.h
arch/armv7/include/spinlock.h
arch/sh/include/atomic.h
arch/sh/include/ieeefp.h
arch/sh/include/endian.h
arch/octeon/include/param.h
arch/octeon/include/exec.h
arch/octeon/include/ieee.h
arch/octeon/include/frame.h
arch/octeon/include/sysarch.h
arch/octeon/include/lock.h
arch/octeon/include/varargs.h
arch/octeon/include/limits.h
arch/octeon/include/ptrace.h
arch/octeon/include/ieeefp.h
arch/octeon/include/db_machdep.h
arch/octeon/include/pmap.h
arch/octeon/include/mips_opcode.h
arch/octeon/include/tcb.h
arch/octeon/include/reg.h
arch/octeon/include/stdarg.h
arch/octeon/include/signal.h
arch/octeon/include/regnum.h
arch/octeon/include/pte.h
arch/octeon/include/disklabel.h
arch/octeon/include/regdef.h
arch/octeon/include/memconf.h
arch/octeon/include/pcb.h
arch/octeon/include/proc.h
arch/octeon/include/fpu.h
arch/octeon/include/kcore.h
arch/octeon/include/setjmp.h
arch/octeon/include/cdefs.h
arch/octeon/include/fenv.h
arch/octeon/include/asm.h
arch/octeon/include/endian.h
arch/octeon/include/_types.h
arch/octeon/include/vmparam.h
arch/octeon/include/cpustate.h
arch/octeon/include/profile.h
arch/octeon/include/spinlock.h
arch/octeon/include/trap.h
arch/octeon/include/reloc.h
arch/landisk/include/atomic.h
arch/landisk/include/tcb.h
arch/landisk/include/fenv.h
sys/_null.h
Empty data (Trivial)
Probably just need to rm -rf these blank files. There is no data and no license (zero bytes)
arch/landisk/conf/ld.script
arch/macppc/conf/ld.script
dev/pci/drm/include/acpi/button.h
dev/pci/drm/include/asm/agp.h
dev/pci/drm/include/asm/intel-mid.h
dev/pci/drm/include/asm/unaligned.h
dev/pci/drm/include/linux/anon_inodes.h
dev/pci/drm/include/linux/cache.h
dev/pci/drm/include/linux/cdev.h
dev/pci/drm/include/linux/circ_buf.h
dev/pci/drm/include/linux/compat.h
dev/pci/drm/include/linux/component.h
dev/pci/drm/include/linux/debugfs.h
dev/pci/drm/include/linux/dma_remapping.h
dev/pci/drm/include/linux/efi.h
dev/pci/drm/include/linux/fault-inject.h
dev/pci/drm/include/linux/fdtable.h
dev/pci/drm/include/linux/gpio/consumer.h
dev/pci/drm/include/linux/hwmon.h
dev/pci/drm/include/linux/hwmon-sysfs.h
dev/pci/drm/include/linux/i2c-algo-bit.h
dev/pci/drm/include/linux/init.h
dev/pci/drm/include/linux/input.h
dev/pci/drm/include/linux/intel-iommu.h
dev/pci/drm/include/linux/interval_tree_generic.h
dev/pci/drm/include/linux/interval_tree.h
dev/pci/drm/include/linux/iommu.h
dev/pci/drm/include/linux/irqdomain.h
dev/pci/drm/include/linux/kfifo.h
dev/pci/drm/include/linux/list_sort.h
dev/pci/drm/include/linux/media-bus-format.h
dev/pci/drm/include/linux/mem_encrypt.h
dev/pci/drm/include/linux/mempolicy.h
dev/pci/drm/include/linux/mfd/core.h
dev/pci/drm/include/linux/miscdevice.h
dev/pci/drm/include/linux/mman.h
dev/pci/drm/include/linux/mm_types.h
dev/pci/drm/include/linux/mmu_context.h
dev/pci/drm/include/linux/mmu_notifier.h
dev/pci/drm/include/linux/mount.h
dev/pci/drm/include/linux/of_device.h
dev/pci/drm/include/linux/oom.h
dev/pci/drm/include/linux/pagemap.h
dev/pci/drm/include/linux/pfn_t.h
dev/pci/drm/include/linux/platform_device.h
dev/pci/drm/include/linux/pnp.h
dev/pci/drm/include/linux/relay.h
dev/pci/drm/include/linux/sched/mm.h
dev/pci/drm/include/linux/shmem_fs.h
dev/pci/drm/include/linux/sort.h
dev/pci/drm/include/linux/swiotlb.h
dev/pci/drm/include/linux/tty.h
dev/pci/drm/include/linux/version.h
dev/pci/drm/include/linux/vt.h
dev/pci/drm/include/linux/zlib.h
dev/pci/drm/include/video/of_videomode.h
dev/pci/drm/include/video/videomode.h
Glad to be a part— Hyperbola's my favourite LiGNUx, personally. Mind if I ask what the project is?
Anyway, thanks for the report, it's very comprehensive. I'll look into removing/working around any non-free listings. :)
Got it removed with 7a8a1d98bc9c8a4e8e56f6056e18ec94c171cdbb.
The last paragraph of the SoftFloat 2a License is--
The 2c license's last paragraph (clarified), is--
It doesn't look like that the 2a used by OBSD prevents distribution, it just requires attribution (like the 2c), even if the 2c is much better-worded.
Right now QEMU uses code under the 2a license (fpu/softfloat-specialize.inc.c, fpu/softfloat.c, include/fpu/softfloat*.h, target/m68k/softfloat.c, target/m68k/softfloat_fpsp_tables.h), and consciously switched to it to be GPLv2-compatible.
QEMU is listed in the FSD without any problems, and isn't patched by either Hyperbola or Parabola.
It looks like 2a has a precedent of being OK freedom-wise, but it's also possible that no-one's noticed it in QEMU.
Taken out with 116b0190d21b890bf074689eb584a4f289296e33, the PAS device was removed.
Here ends the issue being mirrored.
File removed with ca56347765. ARM is a no-go for LibertyBSD anyway, really.
Worth sorting out upstream, though, I'll check it out.
“Public domain” is acceptable as libre— definitely not ideal, but acceptable.
No license files are considered non-free though...
https://www.gnu.org/licenses/license-list.en.html#NoLicense