

Port maintainers can generate this list from Cargo.lock using make cargo-crates. Each entry needs to have a format like cratename-semver for example, libc-0.2.40.

Variables the Users Can Define for cargo Builds Variable It can also be hard to notice that these patches are required in the first place.įor ports that use Cargo, define USES=cargo. This wastes developer time because the patches might not apply cleanly. When a library needs patches for FreeBSD, these patches have to be duplicated again in the bundled library. It takes longer to build the actual application, especially if these libraries are already present on the system.Īt run-time, they can take up unnecessary memory when the system-wide library is already loaded by one program and the bundled library is loaded by another program. Waste of resourcesīundled libraries waste resources on several levels. When bundling projects from different sources, license issues can arise more easily, especially when licenses are incompatible. The latter problem could be caused because the versions of the two libraries are incompatible. It can also cause errors when running the program which might be harder to track down. This can cause immediate errors at compile or link time. When a library is installed on the system, it might collide with the bundled version.

This defeats the idea of open source software in the first place. Another problem of forking is that because code diverges from upstream, bugs get solved over and over again instead of just once at a central location.
