Open Source Wrap Up: May 16 – 22, 2015
Rust 1.0 is Released
Rust is a programming language that combines low-level performance control with high-level convenience and safety guarantees. It’s designed to serve as a “drop-in” replacement for C. The language should appeal to both experienced systems programmers and newcomers alike. The release of version 1.0 marks the community’s commitment to providing a stable language, and the project will adopt a 6-week release cycle moving forward.
German States Pilot Open Source Patient Portal
Three German states, in partnership with the Rhine-Neckar metropolitan area, have launched a pilot program for a new open source medical patient portal that allows patients to control what information is shared with health professionals. The software combines the Liferay open source portal with the open source eHealth integration platform IPF: an extension of the Apache Camel enterprise integration engine. 25 cancer patients have been selected to participate in this pilot which is funded by the German Federal Ministry of Education and Research.
Linux Community Makes Small Step Towards Fixing Year 2038 Bug
A limitation in 32 bit Linux kernels prevents them from representing time from January 2038 onward. This bug has been named y2038, and with the widespread deployment of Linux systems on 32 bit devices, many of which will never be updated; this presents a significant problem for the operation of these devices beyond that date. While we are still many years out, it is important to get these fixes implemented as soon as possible so they have time to be put in place.
Arnd Bergman has been one of the leading developers behind fixing the problems associated with y2038, and he has released a patch that introduces new system calls to deal with modified data structures. However, there is an open issue for how these should be best accessed from libc. The patch series introduces a new __kernel_time64_t type, and based on that, five new data structures:
- struct __kernel_timespec
- struct __kernel_itimerspec
- struct __kernel_stat
- struct __kernel_rusage
- struct __kernel_timex
Arnd mentions that this approach works well when libc presents its own interface to these structures in user-space, however it doesn’t work well for cases such as klibc, where the user-visible structures come directly from the kernel uapi headers.
MAME Seeks to Adopt a More Permissive License
Multiple Arcade Machine Emulator (MAME) is a popular video game system emulator that is used to reproduce old video games on modern computers. Up to this point, the source code has been distributed under a modified BSD license that prohibits commercial use and hampers the application’s adoption. The core team has decided to open up all drivers and device emulation code using more permissive licenses like BSDv3, LGPLv2, and GPLv2. Their goal is to bring developers who have left back to the community and to encourage new developers to get involved.