Skip to content

eucharistia/libertybsd-scripts

Repository files navigation

===============================================================================
LIBERTYBSD-SCRIPTS                                       For deblobbing OpenBSD
===============================================================================

Scripts used to deblob and rebrand OpenBSD source-code, made for the
LibertyBSD project. You can get OBSD sources from your local mirror
at https://www.openbsd.org/ftp.html, as the 'src', 'xenocara', or 'sys'
tarballs. CVS can be used, as well.


----------------------------------------
SCRIPTS
----------------------------------------
There're five scripts here, so here's what they do:

	src_deblob.sh	Deblobs main OBSD source of NF FW, references, etc
	man_deblob.sh	Gets rid of pages with non-free (NF) references
	sys_deblob.sh	Deletes NF firmware and references thereof from kernel

	src_rebrand.sh	Basic system rebranding, etc
	sys_rebrand.sh	System/boot rebranding
	man_rebrand.sh	Rebrand man-pages, and add some of our new ones
	xenocara_rebrand.sh
			Rebrands X sources-- not much to this one

	ports_deblob.sh
			Deblob ports tree of all NF listings
	ports_rebrand.sh
			Rebrand ports in ports-tree, etc



----------------------------------------
USAGE
----------------------------------------
Usage of these scripts is pretty simple-- to make freshly deblobbed OBSD
sources, just run them each with the argument being the directory of the
corresponding source-code, like so:

	sh src_deblob.sh /usr/src
	sh man_deblob.sh /usr/src
	sh sys_deblob.sh /usr/src/sys
	sh xenocara_rebrand.sh /usr/xenocara
	sh ports_deblob.sh /usr/ports

If you want liberated OpenBSD sources, but without the LibertyBSD rebranding,
just skip the *_rebrand.sh scripts and everything should go fine.



----------------------------------------
NOTES
----------------------------------------
All of the scripts make use of "./libdeblob.sh", and all file-editing/etc
operations are abstracted to its functions.

This is because instead of actually applying changes directly to OBSD
sources, the deblob scripts create a set of patches for them, and *then*
apply them.

You might want to perform multiple operations on a given file, (I.E.,
substitute text, then remove a line, etc.). After every operation, a new
(modified) version of the file is created in the /tmp/ directory, along with
a patch. So if you want to do multiple operations, you'll need to decide
whether or not to use the original source-code, or a modified version from
/tmp/...

This has been abstracted away with the "ifile" and "ofile" functions.
"ifile" outputs to stdout the contents of the file-- be it the patch-file, the
original, whatever is appropriate. "ofile" writes to the patch-file what is
piped to it, and handles the bullocks.

Hence why "ifile | operation | ofile" is so common in libdeblob.sh

Each script uses a very clearly-named /tmp/ directory...
	/tmp/script-name/


While it is a *tad* bit weird do all of this indirect work on the sources, it
has a few advantages I'd like to stick with:
	* Abstraction.
		Operations are all very general and unspecific; you don't need
		to manually muck with `sed` for every individual patch.
	* Easy debugging.
		If there's a problem, you can stop the script before it patches
		original sources, and look at the /tmp/ data. Compare the
		.orig with the .patch with the modified, etc. Very useful.
	* Patch generation.
		With patches being integral to the entire process, it makes all
		changes made to OBSD source code very transparent. Anyone could
		take a look at a tarball of the patches and understand *exactly*
		what changed. 
		There're probably some other obscure use-cases for these
		patches, anyway. And if it's easy to support a weird
		hypothetical use-case, why not?

... in order of importance.



----------------------------------------
BORING STUFF
----------------------------------------
Send patches/issues to:
</f/libertybsd> (raddle.me)
<#libertybsd> (Freenode)
<jadedctrl@teknik.io>
<LibertyBSD/libertybsd-scripts> (NotABug)

License is ISC (COPYING.txt)
Author is Jaidyn Ann <jadedctrl@teknik.io>
Some ports contributions by jmfgdef (Jimmybot),
Some improvements by Einhard Leichtfuß.
Source is at https://notabug.org/LibertyBSD/libertybsd-scripts

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •