diff options
Diffstat (limited to 'nixpkgs/pkgs/tools/archivers/gnutar/default.nix')
-rw-r--r-- | nixpkgs/pkgs/tools/archivers/gnutar/default.nix | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/tools/archivers/gnutar/default.nix b/nixpkgs/pkgs/tools/archivers/gnutar/default.nix new file mode 100644 index 00000000000..caf507670f4 --- /dev/null +++ b/nixpkgs/pkgs/tools/archivers/gnutar/default.nix @@ -0,0 +1,69 @@ +{ stdenv, fetchurl, autoreconfHook, acl }: + +stdenv.mkDerivation rec { + pname = "gnutar"; + version = "1.32"; + + src = fetchurl { + url = "mirror://gnu/tar/tar-${version}.tar.xz"; + sha256 = "1n7xy657ii0sa42zx6944v2m4v9qrh6sqgmw17l3nch3y43sxlyh"; + }; + + # avoid retaining reference to CF during stdenv bootstrap + configureFlags = stdenv.lib.optionals stdenv.isDarwin [ + "gt_cv_func_CFPreferencesCopyAppValue=no" + "gt_cv_func_CFLocaleCopyCurrent=no" + "gt_cv_func_CFLocaleCopyPreferredLanguages=no" + ]; + + # gnutar tries to call into gettext between `fork` and `exec`, + # which is not safe on darwin. + # see http://article.gmane.org/gmane.os.macosx.fink.devel/21882 + postPatch = stdenv.lib.optionalString stdenv.isDarwin '' + substituteInPlace src/system.c --replace '_(' 'N_(' + ''; + + outputs = [ "out" "info" ]; + + buildInputs = [ ] + ++ stdenv.lib.optional stdenv.isLinux acl + ++ stdenv.lib.optional stdenv.isDarwin autoreconfHook; + + # May have some issues with root compilation because the bootstrap tool + # cannot be used as a login shell for now. + FORCE_UNSAFE_CONFIGURE = stdenv.lib.optionalString (stdenv.hostPlatform.system == "armv7l-linux" || stdenv.isSunOS) "1"; + + preConfigure = if stdenv.isCygwin then '' + sed -i gnu/fpending.h -e 's,include <stdio_ext.h>,,' + '' else null; + + doCheck = false; # fails + doInstallCheck = false; # fails + + meta = { + homepage = https://www.gnu.org/software/tar/; + description = "GNU implementation of the `tar' archiver"; + + longDescription = '' + The Tar program provides the ability to create tar archives, as + well as various other kinds of manipulation. For example, you + can use Tar on previously created archives to extract files, to + store additional files, or to update or list files which were + already stored. + + Initially, tar archives were used to store files conveniently on + magnetic tape. The name "Tar" comes from this use; it stands + for tape archiver. Despite the utility's name, Tar can direct + its output to available devices, files, or other programs (using + pipes), it can even access remote devices or files (as + archives). + ''; + + license = stdenv.lib.licenses.gpl3Plus; + + maintainers = [ ]; + platforms = stdenv.lib.platforms.all; + + priority = 10; + }; +} |