# File lib/mixlib/archive/lib_archive.rb, line 54
      def create(files, gzip: false)
        compression = gzip ? ::Archive::COMPRESSION_GZIP : ::Archive::COMPRESSION_NONE
        # "PAX restricted" will use PAX extensions when it has to, but will otherwise
        # use ustar for maximum compatibility
        format = ::Archive::FORMAT_TAR_PAX_RESTRICTED

        ::Archive.write_open_filename(archive, compression, format) do |tar|
          files.each do |fn|
            tar.new_entry do |entry|
              content = nil
              entry.pathname = fn
              stat = File.lstat(fn)
              if File.file?(fn)
                content = File.read(fn)
                entry.size = content.bytesize
              end
              entry.mode = stat.mode
              entry.filetype = resolve_type(stat.ftype)
              entry.atime = stat.atime
              entry.mtime = stat.mtime
              entry.symlink = File.readlink(fn) if File.symlink?(fn)
              tar.write_header(entry)

              tar.write_data(content) unless content.nil?
            end
          end
        end
      end