{ fetchurl }: { project, major, minor, patchlevel ? null, extension ? "bz2", sha256 }: let baseVersion = "${major}.${minor}"; version = baseVersion + (if patchlevel != null then ".${patchlevel}" else ""); name = "${project}-${version}"; in (fetchurl { url = "mirror://gnome/sources/${project}/${baseVersion}/${name}.tar.${extension}"; inherit sha256; }) // { inherit major minor patchlevel baseVersion version; pkgname = name; }