summaryrefslogtreecommitdiffstats
path: root/README
diff options
context:
space:
mode:
Diffstat (limited to 'README')
-rw-r--r--README41
1 files changed, 41 insertions, 0 deletions
diff --git a/README b/README
new file mode 100644
index 0000000..f6dc4c1
--- /dev/null
+++ b/README
@@ -0,0 +1,41 @@
+libr - Library to manage resources in ELF binaries
+
+See the INSTALL file for general installation instructions.
+
+* What is the purpose of this library?
+This library is intended to provide an easy to use mechanism for managing
+(embedding, retrieving, deleting) resources in ELF binaries. The library
+provides a solid API and ABI that implements the preliminary spec for adding
+ELF resources (icons or otherwise) documented at:
+https://wiki.ubuntu.com/ELFIconSpec
+Please note that should a backward-incompatible change occur to the API/ABI
+then the shared library version code will be bumped.
+
+* Why are there multiple backends?
+Originally this library was written to use libelf, unfortunately libelf has
+some issues with reordering data in small executables. Until these issues are
+resolved please use libbfd (the default backend) or the read-only backend.
+If you would like to experiment with the libelf backend you can try and set
+resources on the application "alsamixer", which is a commonly installed
+application that is known to break.
+
+* What is the read-only backend?
+The read-only backend is a dependency-free backend that is capable of reading
+libr resources. Support for this backend is thanks to Martin Rosenau.
+This backend is currently a new edition to libr, however, in the long-run the
+read-only backend will be the recommended (default) backend for the purpose of
+most applications. Only a special class of application (primarily elfres)
+needs to actually add and remove resources in a binary, most applications
+need only read resources already added by elfres.
+
+NOTICE! This library is licensed under the LGPL v2.1 while the backend for
+libbfd is licensed under the LGPL v3. You may choose to distribute your
+modifications to this variant of the library under the LGPL v3, in accordance
+with Section 5 of that license. Should you wish to excise libbfd from this
+library you may choose to remove libr_bfd.h and libr_bfd.c and compile against
+libelf instead, the backend may be selected at configure time:
+./configure --libr-backend=libelf
+
+I consider the ability to select the library backend as satisfying the LGPL v3
+Section 5a requirement and this notice (and the notice contained within
+libr_bfd.c) to satisfy the Section 5b requirement.