18c2ecf20Sopenharmony_ci[LICENSING]
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ciReiserFS is hereby licensed under the GNU General
48c2ecf20Sopenharmony_ciPublic License version 2.
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_ciSource code files that contain the phrase "licensing governed by
78c2ecf20Sopenharmony_cireiserfs/README" are "governed files" throughout this file.  Governed
88c2ecf20Sopenharmony_cifiles are licensed under the GPL.  The portions of them owned by Hans
98c2ecf20Sopenharmony_ciReiser, or authorized to be licensed by him, have been in the past,
108c2ecf20Sopenharmony_ciand likely will be in the future, licensed to other parties under
118c2ecf20Sopenharmony_ciother licenses.  If you add your code to governed files, and don't
128c2ecf20Sopenharmony_ciwant it to be owned by Hans Reiser, put your copyright label on that
138c2ecf20Sopenharmony_cicode so the poor blight and his customers can keep things straight.
148c2ecf20Sopenharmony_ciAll portions of governed files not labeled otherwise are owned by Hans
158c2ecf20Sopenharmony_ciReiser, and by adding your code to it, widely distributing it to
168c2ecf20Sopenharmony_ciothers or sending us a patch, and leaving the sentence in stating that
178c2ecf20Sopenharmony_cilicensing is governed by the statement in this file, you accept this.
188c2ecf20Sopenharmony_ciIt will be a kindness if you identify whether Hans Reiser is allowed
198c2ecf20Sopenharmony_cito license code labeled as owned by you on your behalf other than
208c2ecf20Sopenharmony_ciunder the GPL, because he wants to know if it is okay to do so and put
218c2ecf20Sopenharmony_cia check in the mail to you (for non-trivial improvements) when he
228c2ecf20Sopenharmony_cimakes his next sale.  He makes no guarantees as to the amount if any,
238c2ecf20Sopenharmony_cithough he feels motivated to motivate contributors, and you can surely
248c2ecf20Sopenharmony_cidiscuss this with him before or after contributing.  You have the
258c2ecf20Sopenharmony_ciright to decline to allow him to license your code contribution other
268c2ecf20Sopenharmony_cithan under the GPL.
278c2ecf20Sopenharmony_ci
288c2ecf20Sopenharmony_ciFurther licensing options are available for commercial and/or other
298c2ecf20Sopenharmony_ciinterests directly from Hans Reiser: hans@reiser.to.  If you interpret
308c2ecf20Sopenharmony_cithe GPL as not allowing those additional licensing options, you read
318c2ecf20Sopenharmony_ciit wrongly, and Richard Stallman agrees with me, when carefully read
328c2ecf20Sopenharmony_ciyou can see that those restrictions on additional terms do not apply
338c2ecf20Sopenharmony_cito the owner of the copyright, and my interpretation of this shall
348c2ecf20Sopenharmony_cigovern for this license.
358c2ecf20Sopenharmony_ci
368c2ecf20Sopenharmony_ciFinally, nothing in this license shall be interpreted to allow you to
378c2ecf20Sopenharmony_cifail to fairly credit me, or to remove my credits, without my
388c2ecf20Sopenharmony_cipermission, unless you are an end user not redistributing to others.
398c2ecf20Sopenharmony_ciIf you have doubts about how to properly do that, or about what is
408c2ecf20Sopenharmony_cifair, ask.  (Last I spoke with him Richard was contemplating how best
418c2ecf20Sopenharmony_cito address the fair crediting issue in the next GPL version.)
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_ci[END LICENSING]
448c2ecf20Sopenharmony_ci
458c2ecf20Sopenharmony_ciReiserfs is a file system based on balanced tree algorithms, which is
468c2ecf20Sopenharmony_cidescribed at https://reiser4.wiki.kernel.org/index.php/Main_Page 
478c2ecf20Sopenharmony_ci
488c2ecf20Sopenharmony_ciStop reading here.  Go there, then return.
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ciSend bug reports to yura@namesys.botik.ru.
518c2ecf20Sopenharmony_ci
528c2ecf20Sopenharmony_cimkreiserfs and other utilities are in reiserfs/utils, or wherever your
538c2ecf20Sopenharmony_ciLinux provider put them.  There is some disagreement about how useful
548c2ecf20Sopenharmony_ciit is for users to get their fsck and mkreiserfs out of sync with the
558c2ecf20Sopenharmony_civersion of reiserfs that is in their kernel, with many important
568c2ecf20Sopenharmony_cidistributors wanting them out of sync.:-) Please try to remember to
578c2ecf20Sopenharmony_cirecompile and reinstall fsck and mkreiserfs with every update of
588c2ecf20Sopenharmony_cireiserfs, this is a common source of confusion.  Note that some of the
598c2ecf20Sopenharmony_ciutilities cannot be compiled without accessing the balancing code
608c2ecf20Sopenharmony_ciwhich is in the kernel code, and relocating the utilities may require
618c2ecf20Sopenharmony_ciyou to specify where that code can be found.
628c2ecf20Sopenharmony_ci
638c2ecf20Sopenharmony_ciYes, if you update your reiserfs kernel module you do have to
648c2ecf20Sopenharmony_cirecompile your kernel, most of the time.  The errors you get will be
658c2ecf20Sopenharmony_ciquite cryptic if your forget to do so.
668c2ecf20Sopenharmony_ci
678c2ecf20Sopenharmony_ciReal users, as opposed to folks who want to hack and then understand
688c2ecf20Sopenharmony_ciwhat went wrong, will want REISERFS_CHECK off.
698c2ecf20Sopenharmony_ci
708c2ecf20Sopenharmony_ciHideous Commercial Pitch: Spread your development costs across other OS
718c2ecf20Sopenharmony_civendors.  Select from the best in the world, not the best in your
728c2ecf20Sopenharmony_cibuilding, by buying from third party OS component suppliers.  Leverage
738c2ecf20Sopenharmony_cithe software component development power of the internet.  Be the most
748c2ecf20Sopenharmony_ciaggressive in taking advantage of the commercial possibilities of
758c2ecf20Sopenharmony_cidecentralized internet development, and add value through your branded
768c2ecf20Sopenharmony_ciintegration that you sell as an operating system.  Let your competitors
778c2ecf20Sopenharmony_cibe the ones to compete against the entire internet by themselves.  Be
788c2ecf20Sopenharmony_cihip, get with the new economic trend, before your competitors do.  Send
798c2ecf20Sopenharmony_ciemail to hans@reiser.to.
808c2ecf20Sopenharmony_ci
818c2ecf20Sopenharmony_ciTo understand the code, after reading the website, start reading the
828c2ecf20Sopenharmony_cicode by reading reiserfs_fs.h first.
838c2ecf20Sopenharmony_ci
848c2ecf20Sopenharmony_ciHans Reiser was the project initiator, primary architect, source of all
858c2ecf20Sopenharmony_cifunding for the first 5.5 years, and one of the programmers.  He owns
868c2ecf20Sopenharmony_cithe copyright.
878c2ecf20Sopenharmony_ci
888c2ecf20Sopenharmony_ciVladimir Saveljev was one of the programmers, and he worked long hours
898c2ecf20Sopenharmony_ciwriting the cleanest code.  He always made the effort to be the best he
908c2ecf20Sopenharmony_cicould be, and to make his code the best that it could be.  What resulted
918c2ecf20Sopenharmony_ciwas quite remarkable. I don't think that money can ever motivate someone
928c2ecf20Sopenharmony_cito work the way he did, he is one of the most selfless men I know.
938c2ecf20Sopenharmony_ci
948c2ecf20Sopenharmony_ciYura helps with benchmarking, coding hashes, and block pre-allocation
958c2ecf20Sopenharmony_cicode.
968c2ecf20Sopenharmony_ci
978c2ecf20Sopenharmony_ciAnatoly Pinchuk is a former member of our team who worked closely with
988c2ecf20Sopenharmony_ciVladimir throughout the project's development.  He wrote a quite
998c2ecf20Sopenharmony_cisubstantial portion of the total code.  He realized that there was a
1008c2ecf20Sopenharmony_cispace problem with packing tails of files for files larger than a node
1018c2ecf20Sopenharmony_cithat start on a node aligned boundary (there are reasons to want to node
1028c2ecf20Sopenharmony_cialign files), and he invented and implemented indirect items and
1038c2ecf20Sopenharmony_ciunformatted nodes as the solution.
1048c2ecf20Sopenharmony_ci
1058c2ecf20Sopenharmony_ciKonstantin Shvachko, with the help of the Russian version of a VC,
1068c2ecf20Sopenharmony_citried to put me in a position where I was forced into giving control
1078c2ecf20Sopenharmony_ciof the project to him.  (Fortunately, as the person paying the money
1088c2ecf20Sopenharmony_cifor all salaries from my dayjob I owned all copyrights, and you can't
1098c2ecf20Sopenharmony_cireally force takeovers of sole proprietorships.)  This was something
1108c2ecf20Sopenharmony_cicurious, because he never really understood the value of our project,
1118c2ecf20Sopenharmony_ciwhy we should do what we do, or why innovation was possible in
1128c2ecf20Sopenharmony_cigeneral, but he was sure that he ought to be controlling it.  Every
1138c2ecf20Sopenharmony_ciinnovation had to be forced past him while he was with us.  He added
1148c2ecf20Sopenharmony_citwo years to the time required to complete reiserfs, and was a net
1158c2ecf20Sopenharmony_ciloss for me.  Mikhail Gilula was a brilliant innovator who also left
1168c2ecf20Sopenharmony_ciin a destructive way that erased the value of his contributions, and
1178c2ecf20Sopenharmony_cithat he was shown much generosity just makes it more painful.
1188c2ecf20Sopenharmony_ci
1198c2ecf20Sopenharmony_ciGrigory Zaigralin was an extremely effective system administrator for
1208c2ecf20Sopenharmony_ciour group.
1218c2ecf20Sopenharmony_ci
1228c2ecf20Sopenharmony_ciIgor Krasheninnikov was wonderful at hardware procurement, repair, and
1238c2ecf20Sopenharmony_cinetwork installation.
1248c2ecf20Sopenharmony_ci
1258c2ecf20Sopenharmony_ciJeremy Fitzhardinge wrote the teahash.c code, and he gives credit to a
1268c2ecf20Sopenharmony_citextbook he got the algorithm from in the code.  Note that his analysis
1278c2ecf20Sopenharmony_ciof how we could use the hashing code in making 32 bit NFS cookies work
1288c2ecf20Sopenharmony_ciwas probably more important than the actual algorithm.  Colin Plumb also
1298c2ecf20Sopenharmony_cicontributed to it.
1308c2ecf20Sopenharmony_ci
1318c2ecf20Sopenharmony_ciChris Mason dived right into our code, and in just a few months produced
1328c2ecf20Sopenharmony_cithe journaling code that dramatically increased the value of ReiserFS.
1338c2ecf20Sopenharmony_ciHe is just an amazing programmer.
1348c2ecf20Sopenharmony_ci
1358c2ecf20Sopenharmony_ciIgor Zagorovsky is writing much of the new item handler and extent code
1368c2ecf20Sopenharmony_cifor our next major release.
1378c2ecf20Sopenharmony_ci
1388c2ecf20Sopenharmony_ciAlexander Zarochentcev (sometimes known as zam, or sasha), wrote the
1398c2ecf20Sopenharmony_ciresizer, and is hard at work on implementing allocate on flush.  SGI
1408c2ecf20Sopenharmony_ciimplemented allocate on flush before us for XFS, and generously took
1418c2ecf20Sopenharmony_cithe time to convince me we should do it also.  They are great people,
1428c2ecf20Sopenharmony_ciand a great company.
1438c2ecf20Sopenharmony_ci
1448c2ecf20Sopenharmony_ciYuri Shevchuk and Nikita Danilov are doing squid cache optimization.
1458c2ecf20Sopenharmony_ci
1468c2ecf20Sopenharmony_ciVitaly Fertman is doing fsck.
1478c2ecf20Sopenharmony_ci
1488c2ecf20Sopenharmony_ciJeff Mahoney, of SuSE, contributed a few cleanup fixes, most notably
1498c2ecf20Sopenharmony_cithe endian safe patches which allow ReiserFS to run on any platform
1508c2ecf20Sopenharmony_cisupported by the Linux kernel.
1518c2ecf20Sopenharmony_ci
1528c2ecf20Sopenharmony_ciSuSE, IntegratedLinux.com, Ecila, MP3.com, bigstorage.com, and the
1538c2ecf20Sopenharmony_ciAlpha PC Company made it possible for me to not have a day job
1548c2ecf20Sopenharmony_cianymore, and to dramatically increase our staffing.  Ecila funded
1558c2ecf20Sopenharmony_cihypertext feature development, MP3.com funded journaling, SuSE funded
1568c2ecf20Sopenharmony_cicore development, IntegratedLinux.com funded squid web cache
1578c2ecf20Sopenharmony_ciappliances, bigstorage.com funded HSM, and the alpha PC company funded
1588c2ecf20Sopenharmony_cithe alpha port.  Many of these tasks were helped by sponsors other
1598c2ecf20Sopenharmony_cithan the ones just named.  SuSE has helped in much more than just
1608c2ecf20Sopenharmony_cifunding....
1618c2ecf20Sopenharmony_ci
162