Berkeley Db 4 and later versions compatibility - compatibility

For Berkeley db, some distro like fedora have both libdb4 and libdb(version 5), so why is this, is version 4 not compatible with future versions? Does my application need to support both versions?

There was a log file format change between version 4 and 5 that requires an upgrade. Essentially, yes, version 4 databases are not strictly compatible with the version 5 runtime. The on-disk data must be upgraded. Not all applications are ready to handle this, so libdb4 is still floating around.
You can find the changelog on Oracle's BDB site, here: http://www.oracle.com/technetwork/database/berkeleydb/downloads/index-082944.html
BDB version 6 has been out for about four years now. That's not much time in the life of a 20+ year old database. So, if you're finding that version 5 is still the widely distributed version (it probably is), then you should write your application to that. It has numerous bugfixes. If you want maximum compatibility with (much) older distros, write your application to version 4.

Related

how can version A of a software be released AFTER version B when A is (?) older than B

I have been reading a while on the subject and I came across an article which left me a little bit lost on software versioning/releases.
If you follow it you will see it's just a list of all Symfony releases with their respective dates. What prompted me to ask this question was the fact that I could not get why/how, for example:
Symfony 2.8.37 released | April 2, 2018
while
Symfony 4.0.6 released | March 5, 2018
Symfony is just the example, my question applies to software versioning in general looking for an explanation to the above.
I am (am I?) positive that 2.8.37 is older than 4.0.6 so this most certainly has nothing to do with me comparing them wrong, surely there is a fundamental aspect about the versions release process I'm unaware of.
Finally, just to be sure, if I were to compare two versions, how would I go about it, I don't need a computer-language-specific-solution, just an algorithm in general to compare two given versions like you could do even using paper and pencil (I know, what a heathen).
Typically, 2.8.38 would be a security or other patch to 2.8.37; and 4.0.6 is a patch to 4.0.5, where 4.0 is a newer, more powerful base version that requires a different license or runs only under Windows 10 or some other reason why some people would like to stay on the old version.
The patch to the current version would be published faster, and then the team adds the important security patch to the older versions.
Symfony has very good support for old versions of their framework. Basically Symfony 2 was released and went through various version changes similar to 2.1 -> 2.2 etc. All the while maintaining compatibility with previous Symfony 2 projects.
Further down the road Symfony 3 was released, and while a Symfony 2 project could be updated to a Symfony 3 project it involves some work and there can be project breaking coding changes required. Then Symfony 3 progress 3.1 -> 3.2 etc.
Just because Symfony 3 is out and available doesn't mean that all work or bug fixes are done on Symfony 2. So there will still be releases of Symfony 2, in addition to releases of Symfony 3. Here is a visual view from the Symfony Page to show the version overlaps.
This is common with most software, for example Microsoft Windows 10 is the current version but Microsoft still provides patches for Windows 7.

ASP.NET 4 support for Rebus?

So begins from 0.75.1, Rebus no longer supports ASP.NET 4?
My question will be:
Is 0.75 a stable release for .NET 4 project?
Are we going to continue get bug fixes (if any) for .NET 4 target project?
Thanks
As of 0.75 Rebus has targeted .NET 4.5, which was a requirement to support the usage of async/await in the library.
I'm not an expert on ASP.NET and whether the version follow the versions of .NET, but Rebus will work as long as your host process targets (at least) version 4.5 of the framework. If ASP.NET 4 is only available for projects that target .NET 4, then that implies that you cannot use versions > 0.72 of Rebus.
And then an answer to your questions:
You should pick the latest version of Rebus, but that requires that you target (at least) .NET 4.5. If that is not an option, you should pick Rebus 0.72 (which is the last version available that targets .NET 4).
No (*)
As for the (*) above, I'd like to make the following fairly long and elaborate point: Generally, you can't count on getting bug fixes for the free, open-source software you have downloaded and are using, freely, without having paid a cent - at all!
If you want to be able to reliably count on getting bug fixes for your free software, I suggest you get a support contract with a company that is willing to provide that service. My employer provides that service for Rebus in case you're interested.
With that said, I'll add that I am a pretty helpful person, and I do a lot for people to have a nice experience with Rebus, but I am sure that you can understand that I cannot promise to provide bug fixes for the old versions.
I will be around for helpful advice if you run into something, but - as I am developing Rebus mostly in my spare time - you can probably understand why I need to concentrate my efforts on the current version.

RPM Build Environment For Compatiblity

I'm setting up reproducible build environments for our product using Vagrant and VirtualBox. We are targeting RHEL7, Oracle7 and Ubuntu 14. I have read a few RPM build guides but one thing is not clear to me. Using RHEL6 as an example, say I build an rpm on RHEL 6.4 but want to ensure compatibility with 6.0 and up. Will the generated RPM be compatible with the whole RHEL 6 series or do I need to build on 6.0 to ensure that?
Basically I'm trying to decide if I should have Vagrant update the systems to the latest minor release and packages in my rpm build environments.
Generally yes, as long as you're only dependent on public interfaces. Determining what a public interface is, isn't all that easy though.
From Red Hat Enterprise Linux: Application Compatibility GUIDE
During the life cycle of a major release, Red Hat makes commercially
reasonable efforts to maintain binary compatibility for the core
runtime environment across all minor releases and errata advisories.
That's the best guarantee you'll get it seems. Edit: See also Red Hat Enterprise Linux Application Compatibility Policies
During RHEL 5.x and 6.x, we've built many projects whose binaries were run on older minor releases,
I've not seen any problems. (Although the binary interface for these applications is minimal, limited to libc/libstdc++ and 3-4 other libraries - and a few python programs)
(As a side note if you're building kernel modules, the kernel provides no ABI guarantee and may change between minor releases.)
I'd always operated under the assumption that the compatibility guarantee was from anywhere in the series to anywhere in the series but I've seen at least one instance where that was broken (I don't know if that was accidental or not though).
So, for safety, I would probably suggest using the oldest revision of the series that you officially want to support.

Any reason I shouldn't upgrade to Xcode 4?

Any issues? Does it replace 3.2? Appreciate the help/insight.
As long as Xcode 4 is a developer preview instead of a supported release, you are taking a big risk if you depend on Xcode for your livelihood. If you are interested only in hobby work, then the only thing you have to loose is a little hair (yes, there are several outstanding issues in preview 3). Once Xcode 4 is released, I think it provides many compelling features and I will happily move my development efforts over to the new version. Unlike Windows/Visual Studio, Xcode releases are not tied to operating system or library versions, and the Xcode team has made it so that versions 3 and 4 play very well together. So you can use either Xcode 3.x or Xcode 4 interchangeably.
Plain and simple: Because it's a Developer Preview! :)
(and personally: still crashes a lot on my machine)
And correct me if I'm wrong, but XCode4 still lacks several features.
Some basic features are also still not working as expected. When you write for Code Sense will suggest a long list for keywords. But the for-loop is still missing from the list. I am sure we all know how to write such a loop but for a beginner it still would be useful as it is in Xcode 3.2
I've found XCode 4 to be stable enough for daily work as of the DP5 release, and Apple is actually encouraging this now.
When (and you will) you run across things that don't work, or XCode crashes, just switch back to XCode 3.2 and work past the issue. The project file format is compatible so this isn't an issue at all.
Overall, XCode 4 is shaping up to be an awesome tool.
If you have a Core 2 Duo or earlier, DO NOT UPGRADE. Xcode 4 is a great tool with many wonderful additions, but slower Mac's can't handle it. You'll often find yourself typing then waiting for the editor to catch up.

What do you think of Postgres and Firebird Databases? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I am trying to choose between postgre and firebird databasses. The database will be installed on a windows 2003 server with asp.net 3.5. i don't want to use sql server because of price issues and I don't want MySQL I had a bad experience with it and the .net connector and the membership provider.
I've always been impressed with Postgres; it's traditionally had a more complete feature set (in terms of ACID compliance, support for advanced queries, etc.) than MySQL, it has solid Windows ODBC drivers, and its documentation scrupulously points out any areas in which it deviates from the SQL standard. (All databases, it seems, deviate in one respect or another, but Postgres is the only one I've seen that makes sure you know when you're doing so.) I haven't tried the usage scenario you describe, but I've had no problems running it on Linux and accessing it from both Windows ODBC and Linux clients.
I don't have any experience with Firebird; sorry.
I'm using firebird database since 1.0
I'm very happy with it
I'm using on windows and linux
Some time ago, I used to work with odbc. No problems and very easy
Easy instalation, very small maintenance, rocks
Dividing db in several files is an option, but I don't recomend you to do it
After server crashes (electric problem or full harddisk) the system continues working inmediatly without any maintenance
I have versiĆ³n 2.1 on testing and 1.5 on production
I'm using flamerobin to manage both versions
Hellen's book is great to learn about firebird
I also tested and read about postgresql.
It looks a great db server
Since long time, they are using multigenerational records (as firebird before interbase before groton databases did since the begining)
On postgresql, now you need to vacued records (on firebird it is called sweep)
Someone told you it wasn't necesary on postgresql, but I don't thing so
postgresql has a better language. You can write your own funcions with this language (on firebird you have to write new functions on c, c++, etc...)
postgresql has more data types. In fact you have several of them.
You also have full search.
On postgresql you also have regular expresions (I think in where, and therefore with sustitution options). This funcionality will be ready on firebird very soon
In any case, I'm very happy with firebird and it evolucion.
Postgresql and firebird are improving and diferences bettwen them are smaller
Many of the comments comparing firebird and postgresql are copied from...
http://www.firebirdsql.org/dotnetfirebird/blog/2005/03/firebird-advantages-over-postgresql.html
this is an old comparation. I don't think postgresql driver on .net is not mature now
With firebird you cannot connect from one database to another (it will be possible in a short future)
Firebird is smaller and easer than postgresql, but it's also very good in performance, stability and low mantenaince
bye
I've been using Firebird for several years. Its been rock solid and I'm very happy with it. Excellent comprehensive documentation is available via Borrie's "The Firebird Book" & its updates. Awesome administration capabilities are available using IBexpert.
I've been working with PostgreSQL, Firebird, Oracle, MySQL, MSSQL more than 6 years ago and my preferred are Firebird and PostgreSQL. I don't like MySQL because Commercial License is not cheap, and MySQL lacks of some functions.
I you ask me about what is my preferred one between FB and Pg.... It varies about requirements and needs. I feel that Firebird works better when speed is a must. I've been working with very large databases environments and I have not had problems. PostgreSQL is better in web sites and internet applications developed in PHP, Python and Ruby, but I think that this will not be for much time. In the last months big companies are looking to FB as a very serious DB. I recommend you FB. Try it, give it a chance, you won't be disappointed.
We use Firebird since its birth. Actually we love this database :)
I love using Postgres - it's powerful, fast, reliable and extremely well documented. The PL/PgSQL language is about as powerful as you could conceivably require, and I can't think of a single serious problem I've ever encountered with it. Most problems tend to be user-created ones, and are resolved after digging through the documentation.
Provided you know a bit about "grown up" databases (i.e. not something like MS Access), or are prepared to learn, I'd wholeheartedly recommend Postgres.
Can't comment on Firebird because I haven't used it
Firebird + FreeadhocUDFs + IBExpert, and just programming.
we have 2 systems in production for 6 years
(20 domains, 200 tables, 50 views, 370 stored procedures, 600 triggers,
205 generators, 11, roles, etc, etc) and have been tested to migrate to PostgreSQL (only
test, we love Firebird).
In tables with traditional data types (integer, varchar, date, numeric, etc, etc.)
differences could be for one or the other, as appropriate,
but in stored procedures, Firebird is much more powerful than Postgresql,
much more simple and elegant.
Two or three years, any Linux distribution, not including Firebird, only Mysql and Postgresl.
Not for nothing today, but tradicionesles distributions (ubunutu / opensuse / fedora / centos, etc, etc) and
Firebird include in their repositories.
Postgresql do not say that is worse than Firebird, Firebird is not that much better than Postgresql.
But without hesitation I say that Firebird has nothing to envy to Postgresql, and in many ways is more powerful.
(sorry for my bad english)
They are both cool. However, one BIG advantage for Firebird is it's .net data provider. Good mature solution, vs buggy npgsql (or some paid Postgres drivers). So it it mostly to chose what db you are more familiar with or what are your developement team skills.
Both Postgres and Firebird are excellent databases.
I've been using Firebird for 8 years and it is really strong.
Check this link http://www.ib-aid.com/articles/item104 and see that Firebird is a pretty good database.
Postgres's .NET driver is not mature enougth, while firebird .net provider is even supporting entity framework!!
Firebird is wonderfull, solid, easy to maintain, install & small footprint (embedded version as well)
The only drawback: you have to do a backup and restore to eliminate deleted records physically.
So for a system that has to be 24/7/365 it is a huge limitation.it is not my case so no problemo.
PostgreSQL does not have that problem (but I have never used it).
A friend runs an entire shipping company with millions of transactions on PostgreSQL with linux servers & java and he is very happy.But the maintenance is more heavy than firebird.
Besides if you use delphi, Firebird is better suited.
I always worked with Firebird since 2005 writing application in Delphi, C# and ASP.NET. I never had a corrupt database in my projects. I never needed to work with another database.
Why Firebird instead of PostgreSQL?
Because Firebird is:
Easy to Install and Configure;
Very stable;
Lightweight (Firebird 2.5 Download:
6,4MB / Postgresql 9.0 Download:
47MB);
OpenSource;
Easy deployment (PSQL);
Crossplatform (Win32 / Win64 / Linux
x86 / Linux AMD64 / MacOS X / Solaris
/ HP-UNIX);
No need for DBAs;
Embedded engine;
Well. If you are using Firebird you dont need another Database. :)
We are using Firebird since 1.0v. It is stable, robust, many features out of the box and extremelly easy to install and mantain.
We develop using .Net and Delphi.
If you choosse FB, fell free to contact us if you need some tips.
Paulo Junqueira.
http://www.rt1.com.br
Most of the features are the same on both however I recommend Firebird
1. FB - supports multiple collation within a table
2. FB - more choices on mature drivers to work with
3. FB - connection managed by either Thread or Process depend on your use/setup
4. FB - embedded support
Not recommend
Stay away MS SQLExpress
A little Draw back
1. FB - blob handling is not so great if condition below are true
but if you move blob column(s) into separated table, then no issue with blob
a. massive data mining/manipulating
b. blob column(s) is/are defined with other data columns
Firebird Rocks man, see this link Firebird Advantages over PostgreSQL
Mature Windows support. Firebird is supported on Windows for a very long time and it's well tested. PostgreSQL supports Windows natively since 8.0. Still only a few months...
Mature ADO.NET provider. Npqsql (PostgreSQL ADO.NET provider) is still in beta. Firebird ADO.NET provider supports the embedded Firebird, services API (backup, restore, statistics, batch SQL execution...).
Embedded version. Embedded version (with 2 MB runtime and easy switching to a standalone server) seems to be one of the biggest advantages of Firebird.
Licensing. LGPL (Npgsql is covered by LGPL) seems to be less commercial-friendly than IPL (at least it is a much less clear language).
The Firebird open source database server wins a SourceForge Community Choice Award (in the "Best Project for Enterprise" category).
Bye.
Feature no 1 : Firebird required 0 Administration and is simpler to use than Postgresql
(think of sqlite like easy of use with oracle/postgresql like features)
2.Firebird does have Embedded mode and is fully multi threaded in 2.5
3.And yes Firebird is fully multithreaded where Postgresql is NOT
so we are ahead in this area with at least 2 or more years
"All backends running as threads in a single process (not wanted)
This eliminates the process protection we get from the current setup. Thread creation is usually the same overhead as process creation on modern systems, so it seems unwise to use a pure threaded model, and MySQL and DB2 have demonstrated that threads introduce as many issues as they solve. Threading specific operations such as I/O, seq scans, and connection management has been discussed and will probably be implemented to enable specific performance features. Moving to a threaded engine would also require halting all other work on PostgreSQL for one to two years."
I will update the post later with more features and links why does
http://mapopa.blogspot.com/2010/10/where-firebird-is-better-than.html
As others have pointed out, PostgreSQL is very good in terms of features, speed and reliability. However, after having developed an enterprise .Net application in it, I have to say that it does not mesh with Visual Studio as easily as SQL Server. Aside from that, SQL Server vs PostgreSQL is a little like the Windows GUI vs the Linux shell: one is easy to use, but the other is much faster and more powerful, ONCE you get used to it.
Apparently you can't use LINQ via the ODBC driver, and if you're developing a system using sometimes connected mobile devices, you lose the option of automatic synchronization that you would otherwise have with SQL Server and SQL Server Compact.
One branch of Firebird is an Oracle clone called Fyracle which is even able to run Compiere. On this page you can find reasons why authors chose Firebird over PostgreSQL, which might also help you with your decision. How successful this Oracle emulation is can be seen from this quote:
Firebird-Fyracle supports the major
Oracle-based ERP/CRM application
"Compiere" -- with virtually no change
to the Compiere code base. Fyracle has
supported Compiere since version
2.4.2b, which contained over 20,000 lines of PL/SQL. The current release,
2.5.3c, has moved most PL/SQL into stored procedures written in Java,
which is also supported by
Firebird-Fyracle.
Why don't you try SQL Express a scaled down version of SQL from Microsoft which is free to use.

Resources