LedgerSMB
Encyclopedia
LedgerSMB is a free software
double entry accounting system. Accounting data is stored in a SQL
database server and a standard web browser
can be used as its user interface
. The system uses the Perl
language and a Perl database interface module for processing, and PostgreSQL
for data storage. LedgerSMB has Multitenancy support.
LedgerSMB is distributed under the terms of the GNU General Public License
.
The forking of LedgerSMB is considered by some to be part of the reason for the anti-forking clause in the short-lived SQL-Ledger Open Source License, the licence that was used for SQL-Ledger 2.8.0.
The 1.2.0 release included a number of very deep security fixes and the beginnings of the refactoring process. The tax and price matrix code was centralized. This release was quite problematic and the core team ended up pulling 1.2.0 and 1.2.1 from public distribution due to a number of issues in integrating old and new code. Many members of the core team have expressed frustration at the level of problems, but Chris Travers has generally likened the problems to those of Apache 2.0, where changes in architecture have caused problematic releases. While it may be too soon to tell, the general hope is that 1.2.x will be the most difficult and problematic release, perhaps of all time.
At the same time, it cannot be denied that a number of the problems in 1.2.0 were the result of trying to do too much too quickly without adequate review. It is difficult to fault the project for this in some cases (removing SQL injection
issues) but it remains to be seen whether the project is able to continue to move forward in such a way as to prevent this from being a problem in the future.
The 1.3.0 release came out on 2011-10-11, with a sizable change log.
Faced with these challenges, the LedgerSMB team developed a new architecture which addresses these issues by adding support for templates in the user interface, and moving all database calls into stored procedures. Although closely resembling model-view-controller
(MVC) in structure, it is not broken down in precisely the same way as other MVC implementations.
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...
double entry accounting system. Accounting data is stored in a SQL
SQL
SQL is a programming language designed for managing data in relational database management systems ....
database server and a standard web browser
Web browser
A web browser is a software application for retrieving, presenting, and traversing information resources on the World Wide Web. An information resource is identified by a Uniform Resource Identifier and may be a web page, image, video, or other piece of content...
can be used as its user interface
User interface
The user interface, in the industrial design field of human–machine interaction, is the space where interaction between humans and machines occurs. The goal of interaction between a human and a machine at the user interface is effective operation and control of the machine, and feedback from the...
. The system uses the Perl
Perl
Perl is a high-level, general-purpose, interpreted, dynamic programming language. Perl was originally developed by Larry Wall in 1987 as a general-purpose Unix scripting language to make report processing easier. Since then, it has undergone many changes and revisions and become widely popular...
language and a Perl database interface module for processing, and PostgreSQL
PostgreSQL
PostgreSQL, often simply Postgres, is an object-relational database management system available for many platforms including Linux, FreeBSD, Solaris, MS Windows and Mac OS X. It is released under the PostgreSQL License, which is an MIT-style license, and is thus free and open source software...
for data storage. LedgerSMB has Multitenancy support.
LedgerSMB is distributed under the terms of the GNU General Public License
GNU General Public License
The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....
.
History
LedgerSMB began as a fork of SQL-Ledger with release of version 1.0.0 2006-09-06. It has, however, diverged rapidly and the future architecture has very little to do with its ancestry.Forking controversy
The project began when Chris Travers, dissatisfied with the handling of security bugs in SQL-Ledger, partnered with Christopher Murtagh to produce a fix for CVE-2006-4244. This bug was apparently reported to the SQL-Ledger author, Dieter Simader, several months prior to the Chrises working on a patch. The initial release of LedgerSMB has SQL-Ledger 2.6.16 with the fix for CVE-2006-4244 as its base. This release, along with full disclosure of the bug on the main mailing list, strained relations between SQL-Ledger supporters and the members of the nascent LedgerSMB project.The forking of LedgerSMB is considered by some to be part of the reason for the anti-forking clause in the short-lived SQL-Ledger Open Source License, the licence that was used for SQL-Ledger 2.8.0.
Next few releases
The 1.1.0 release merged in many patches that had been done for other customers but did not change the structure of the code in any significant way. By this time, however, most of the core members were unhappy with the current architecture and had decided to work on refactoring the code.The 1.2.0 release included a number of very deep security fixes and the beginnings of the refactoring process. The tax and price matrix code was centralized. This release was quite problematic and the core team ended up pulling 1.2.0 and 1.2.1 from public distribution due to a number of issues in integrating old and new code. Many members of the core team have expressed frustration at the level of problems, but Chris Travers has generally likened the problems to those of Apache 2.0, where changes in architecture have caused problematic releases. While it may be too soon to tell, the general hope is that 1.2.x will be the most difficult and problematic release, perhaps of all time.
At the same time, it cannot be denied that a number of the problems in 1.2.0 were the result of trying to do too much too quickly without adequate review. It is difficult to fault the project for this in some cases (removing SQL injection
SQL injection
A SQL injection is often used to attack the security of a website by inputting SQL statements in a web form to get a badly designed website in order to dump the database content to the attacker. SQL injection is a code injection technique that exploits a security vulnerability in a website's software...
issues) but it remains to be seen whether the project is able to continue to move forward in such a way as to prevent this from being a problem in the future.
The 1.3.0 release came out on 2011-10-11, with a sizable change log.
1.3 Architecture
The original codebase of the project had a number of shortcomings. The Perl code generated both database queries and web pages by concatenating or printing portions of the text so that it came out as a distinct page. While this functioned reasonably well, it made the interface very difficult to modify, and interoperability with projects written in other languages was particularly difficult.Faced with these challenges, the LedgerSMB team developed a new architecture which addresses these issues by adding support for templates in the user interface, and moving all database calls into stored procedures. Although closely resembling model-view-controller
Model-view-controller
Model–view–controller is a software architecture, currently considered an architectural pattern used in software engineering. The pattern isolates "domain logic" from the user interface , permitting independent development, testing and maintenance of each .Model View Controller...
(MVC) in structure, it is not broken down in precisely the same way as other MVC implementations.
See also
- Comparison of accounting softwareComparison of accounting softwareThe following comparison of accounting software documents the various features and differences between different professional accounting software and personal finance packages.- Free and open source software :- Proprietary software :...
- Enterprise resource planningEnterprise resource planningEnterprise resource planning systems integrate internal and external management information across an entire organization, embracing finance/accounting, manufacturing, sales and service, customer relationship management, etc. ERP systems automate this activity with an integrated software application...
(ERP) - List of ERP software packages