uboot: (firmwareOdroidC2/C4) don't invoke patch tool, use patches = [] instead
https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh#L948 this can do it nicely. Signed-off-by: Anton Arapov <anton@deadbeef.mx>
This commit is contained in:
commit
56de2bcd43
30691 changed files with 3076956 additions and 0 deletions
152
pkgs/development/ruby-modules/with-packages/Gemfile
Normal file
152
pkgs/development/ruby-modules/with-packages/Gemfile
Normal file
|
|
@ -0,0 +1,152 @@
|
|||
source 'https://rubygems.org' do
|
||||
gem 'addressable'
|
||||
gem 'ansi'
|
||||
gem 'atk'
|
||||
gem 'awesome_print'
|
||||
gem 'bacon'
|
||||
# gem 'bundler' already got a package for that
|
||||
gem 'byebug'
|
||||
gem 'cairo'
|
||||
gem 'cairo-gobject'
|
||||
gem 'camping'
|
||||
# gem 'capybara-webkit' takes too long to build right now since webkit depends on ruby
|
||||
gem 'charlock_holmes'
|
||||
gem 'cld3'
|
||||
gem 'cocoapods'
|
||||
gem 'cocoapods-acknowledgements'
|
||||
gem 'cocoapods-art'
|
||||
gem 'cocoapods-browser'
|
||||
gem 'cocoapods-clean'
|
||||
gem 'cocoapods-clean_build_phases_scripts'
|
||||
gem 'cocoapods-coverage'
|
||||
gem 'cocoapods-deintegrate'
|
||||
gem 'cocoapods-dependencies'
|
||||
gem 'cocoapods-deploy'
|
||||
gem 'cocoapods-downloader'
|
||||
gem 'cocoapods-expert-difficulty'
|
||||
gem 'cocoapods-fix-react-native'
|
||||
gem 'cocoapods-generate'
|
||||
gem 'cocoapods-git_url_rewriter'
|
||||
gem 'cocoapods-keys'
|
||||
gem 'cocoapods-open'
|
||||
gem 'cocoapods-plugins'
|
||||
gem 'cocoapods-search'
|
||||
gem 'cocoapods-testing'
|
||||
gem 'cocoapods-trunk'
|
||||
gem 'cocoapods-try'
|
||||
gem 'cocoapods-try-release-fix'
|
||||
gem 'cocoapods-update-if-you-dare'
|
||||
gem 'cocoapods-whitelist'
|
||||
gem 'cocoapods-wholemodule'
|
||||
gem 'coderay'
|
||||
gem 'concurrent-ruby'
|
||||
gem 'curb'
|
||||
gem 'curses'
|
||||
gem 'daemons'
|
||||
gem 'dep-selector-libgecode'
|
||||
gem 'digest-sha3'
|
||||
gem 'domain_name'
|
||||
gem 'do_sqlite3'
|
||||
gem 'ethon'
|
||||
gem 'eventmachine'
|
||||
gem 'excon'
|
||||
gem 'faraday'
|
||||
gem 'ffi'
|
||||
gem 'ffi-rzmq-core'
|
||||
gem 'fog-dnsimple'
|
||||
gem 'gdk_pixbuf2'
|
||||
gem 'gio2'
|
||||
gem 'github-pages'
|
||||
gem 'gitlab-markup'
|
||||
gem 'glib2'
|
||||
# gem 'gobject-introspection' fails on require
|
||||
gem 'gpgme'
|
||||
# gem 'grpc' fails to build
|
||||
gem 'gtk2'
|
||||
gem 'hashie'
|
||||
gem 'highline'
|
||||
gem 'hike'
|
||||
gem 'hitimes'
|
||||
gem 'hpricot'
|
||||
gem 'httpclient'
|
||||
gem 'http-cookie'
|
||||
gem 'iconv'
|
||||
gem 'idn-ruby'
|
||||
gem 'jbuilder'
|
||||
gem 'jekyll'
|
||||
gem 'jmespath'
|
||||
gem 'jwt'
|
||||
gem 'kramdown-rfc2629'
|
||||
gem 'libv8'
|
||||
gem 'libxml-ruby'
|
||||
gem 'magic'
|
||||
gem 'markaby'
|
||||
gem 'method_source'
|
||||
gem 'mini_magick'
|
||||
gem 'msgpack'
|
||||
gem 'mysql2'
|
||||
# gem 'mysql' deprecated
|
||||
gem 'ncursesw'
|
||||
gem 'netrc'
|
||||
gem 'net-scp'
|
||||
gem 'net-ssh'
|
||||
gem 'nokogiri'
|
||||
gem 'opus-ruby'
|
||||
gem 'ovirt-engine-sdk'
|
||||
gem 'pandocomatic'
|
||||
gem 'pango'
|
||||
gem 'patron'
|
||||
gem 'pcaprub'
|
||||
gem 'pg'
|
||||
gem 'prettier'
|
||||
gem 'pry'
|
||||
gem 'pry-byebug'
|
||||
gem 'pry-doc'
|
||||
gem 'public_suffix'
|
||||
gem 'puma'
|
||||
gem 'rails'
|
||||
gem 'rainbow'
|
||||
# gem 'rbczmq' deprecated
|
||||
gem 'rbnacl'
|
||||
gem 'rb-readline'
|
||||
gem 're2'
|
||||
gem 'redis'
|
||||
gem 'redis-rack'
|
||||
gem 'rest-client'
|
||||
gem 'rmagick'
|
||||
gem 'rpam2'
|
||||
gem 'rspec'
|
||||
gem 'rubocop'
|
||||
gem 'rubocop-performance'
|
||||
gem 'ruby-libvirt'
|
||||
gem 'ruby-lxc'
|
||||
gem 'ruby-progressbar'
|
||||
gem 'ruby-terminfo'
|
||||
gem 'ruby-vips'
|
||||
gem 'rubyzip'
|
||||
gem 'rugged'
|
||||
gem 'sassc'
|
||||
gem 'scrypt'
|
||||
gem 'semian'
|
||||
gem 'sequel'
|
||||
gem 'sequel_pg'
|
||||
gem 'solargraph'
|
||||
gem 'simplecov'
|
||||
gem 'sinatra'
|
||||
gem 'slop'
|
||||
gem 'snappy'
|
||||
gem 'snmp'
|
||||
gem 'sqlite3'
|
||||
gem 'taglib-ruby'
|
||||
gem 'thrift'
|
||||
gem 'tilt'
|
||||
gem 'tiny_tds'
|
||||
gem 'treetop'
|
||||
gem 'typhoeus'
|
||||
gem 'tzinfo'
|
||||
gem 'unf_ext'
|
||||
gem 'uuid4r'
|
||||
gem 'whois'
|
||||
# gem 'xapian-ruby' doesn't contain ruby code
|
||||
gem 'zookeeper'
|
||||
end
|
||||
77
pkgs/development/ruby-modules/with-packages/default.nix
Normal file
77
pkgs/development/ruby-modules/with-packages/default.nix
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
{ stdenv, lib, buildEnv, buildRubyGem, ruby, gemConfig, makeWrapper }:
|
||||
|
||||
/*
|
||||
Example usage:
|
||||
nix-shell -E "(import <nixpkgs> {}).ruby.withPackages (pkgs: with pkgs; [ pry nokogiri ])"
|
||||
|
||||
You can also use this for writing ruby scripts that run anywhere that has nix
|
||||
using a nix-shell shebang:
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i ruby -p "ruby.withPackages (pkgs: with pkgs; [ pry nokogiri ])"
|
||||
|
||||
|
||||
Run the following in the nixpkgs root directory to update the ruby-packages.nix:
|
||||
./maintainers/scripts/update-ruby-packages
|
||||
*/
|
||||
|
||||
let
|
||||
functions = import ../bundled-common/functions.nix { inherit lib gemConfig; };
|
||||
|
||||
buildGems = gemset:
|
||||
let
|
||||
realGemset = if builtins.isAttrs gemset then gemset else import gemset;
|
||||
builtGems =
|
||||
lib.mapAttrs (name: initialAttrs:
|
||||
let
|
||||
attrs = functions.applyGemConfigs ({ inherit ruby; gemName = name; } // initialAttrs);
|
||||
in
|
||||
buildRubyGem (functions.composeGemAttrs ruby builtGems name attrs)
|
||||
) realGemset;
|
||||
in builtGems;
|
||||
|
||||
gems = buildGems (import ../../../top-level/ruby-packages.nix);
|
||||
|
||||
withPackages = selector:
|
||||
let
|
||||
selected = selector gems;
|
||||
|
||||
gemEnv = buildEnv {
|
||||
name = "ruby-gems";
|
||||
paths = selected;
|
||||
pathsToLink = [ "/lib" "/bin" "/nix-support" ];
|
||||
};
|
||||
|
||||
wrappedRuby = stdenv.mkDerivation {
|
||||
name = "wrapped-${ruby.name}";
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
buildCommand = ''
|
||||
mkdir -p $out/bin
|
||||
for i in ${ruby}/bin/*; do
|
||||
makeWrapper "$i" $out/bin/$(basename "$i") --set GEM_PATH ${gemEnv}/${ruby.gemPath}
|
||||
done
|
||||
'';
|
||||
};
|
||||
|
||||
in stdenv.mkDerivation {
|
||||
name = "${ruby.name}-with-packages";
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
buildInputs = [ selected ruby ];
|
||||
|
||||
dontUnpack = true;
|
||||
|
||||
installPhase = ''
|
||||
for i in ${ruby}/bin/* ${gemEnv}/bin/*; do
|
||||
rm -f $out/bin/$(basename "$i")
|
||||
makeWrapper "$i" $out/bin/$(basename "$i") --set GEM_PATH ${gemEnv}/${ruby.gemPath}
|
||||
done
|
||||
|
||||
ln -s ${ruby}/nix-support $out/nix-support
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
inherit wrappedRuby;
|
||||
gems = selected;
|
||||
};
|
||||
};
|
||||
|
||||
in { inherit withPackages gems buildGems; }
|
||||
|
|
@ -0,0 +1,84 @@
|
|||
let
|
||||
cocoapod-plugin = name: ''
|
||||
require "cocoapods"
|
||||
require "#{Gem::Specification.find_by_name(%(${name})).gem_dir}/lib/cocoapods_plugin"
|
||||
'';
|
||||
in {
|
||||
actioncable = [ "action_cable" ];
|
||||
actionmailer = [ "action_mailer" ];
|
||||
actionpack = [ "action_pack" ];
|
||||
actionview = [ "action_view" ];
|
||||
activejob = [ "active_job" ];
|
||||
activemodel = [ "active_model" ];
|
||||
activerecord = [ "active_record" ];
|
||||
activestorage = [ "active_storage" ];
|
||||
activesupport = [ "active_support" ];
|
||||
atk = [ "atk" ];
|
||||
CFPropertyList = [ "cfpropertylist" ];
|
||||
cocoapods-acknowledgements = [ "cocoapods" "cocoapods_acknowledgements" ];
|
||||
cocoapods-art = [ "cocoapods_art" ];
|
||||
cocoapods-browser = [ "cocoapods" "cocoapods_plugin" ];
|
||||
cocoapods-bugsnag = cocoapod-plugin "cocoapods-bugsnag";
|
||||
cocoapods-clean = [ "cocoapods_clean" ];
|
||||
cocoapods-coverage = [ "cocoapods_coverage" ];
|
||||
cocoapods-deintegrate = [ ]; # used by cocoapods
|
||||
cocoapods-dependencies = [ "cocoapods_dependencies" ];
|
||||
cocoapods-deploy = cocoapod-plugin "cocoapods-deploy";
|
||||
cocoapods-generate = cocoapod-plugin "cocoapods-generate";
|
||||
cocoapods-git_url_rewriter = cocoapod-plugin "cocoapods-git_url_rewriter";
|
||||
cocoapods-keys = []; # osx only cocoapod-plugin "cocoapods-keys";
|
||||
cocoapods-open = [ "cocoapods" "cocoapods_plugin" ];
|
||||
cocoapods-packager = [ "cocoapods_packager" ];
|
||||
cocoapods-packager-pro = [ ]; # requires osx
|
||||
cocoapods-plugins = [ "cocoapods_plugins" ];
|
||||
cocoapods-sorted-search = [ ]; # requires osx
|
||||
cocoapods-check = cocoapod-plugin "cocoapods-check";
|
||||
cocoapods-disable-podfile-validations = cocoapod-plugin "cocoapods-disable-podfile-validations";
|
||||
cocoapods-stats = [ "cocoapods_stats" ];
|
||||
cocoapods-testing = [ "cocoapods_testing" ];
|
||||
cocoapods-trunk = [ "cocoapods_trunk" ];
|
||||
cocoapods-try = [ "cocoapods_try" ];
|
||||
cocoapods-try-release-fix = cocoapod-plugin "cocoapods-try-release-fix";
|
||||
digest-sha3 = [ "digest/sha3" ];
|
||||
ffi-compiler = [ "ffi-compiler/loader" ];
|
||||
fog-core = [ "fog/core" ];
|
||||
fog-dnsimple = [ "fog/dnsimple" ];
|
||||
fog-json = [ "fog/json" ];
|
||||
forwardable-extended = [ "forwardable/extended" ];
|
||||
gdk_pixbuf2 = [ "gdk_pixbuf2" ];
|
||||
gitlab-markup = [ "github/markup" ];
|
||||
gobject-introspection = [ "gobject-introspection" ];
|
||||
gtk2 = [ ]; # requires display
|
||||
idn-ruby = [ "idn" ];
|
||||
jekyll-sass-converter = []; # tested through jekyll
|
||||
libxml-ruby = [ "libxml" ];
|
||||
multipart-post = [ "multipart_post" ];
|
||||
unicode-display_width = [ "unicode/display_width" ];
|
||||
nap = [ "rest" ];
|
||||
net-scp = [ "net/scp" ];
|
||||
net-ssh = [ "net/ssh" ];
|
||||
nio4r = [ "nio" ];
|
||||
osx_keychain = [ ]; # requires osx
|
||||
ovirt-engine-sdk = [ "ovirtsdk4" ];
|
||||
pango = [ "pango" ];
|
||||
rack-test = [ "rack/test" ];
|
||||
railties = [ "rails" ];
|
||||
rspec-core = [ "rspec/core" ];
|
||||
rspec-expectations = [ "rspec/expectations" ];
|
||||
rspec-mocks = [ "rspec/mocks" ];
|
||||
rspec-support = [ "rspec/support" ];
|
||||
RubyInline = [ "inline" ];
|
||||
ruby-libvirt = [ "libvirt" ];
|
||||
ruby-lxc = [ "lxc" ];
|
||||
ruby-macho = [ "macho" ];
|
||||
ruby-terminfo = [ "terminfo" ];
|
||||
rubyzip = [ "zip" ];
|
||||
sequel_pg = [ "pg" "sequel" "sequel/adapters/postgresql" "sequel_pg" ];
|
||||
simplecov-html = [ ]; # tested through simplecov
|
||||
sinatra = [ "sinatra/base" ];
|
||||
sprockets-rails = [ "sprockets/rails" ];
|
||||
taglib-ruby = [ "taglib" ];
|
||||
websocket-driver = [ "websocket/driver" ];
|
||||
websocket-extensions = [ "websocket/extensions" ];
|
||||
ZenTest = [ "zentest" ];
|
||||
}
|
||||
46
pkgs/development/ruby-modules/with-packages/test.nix
Normal file
46
pkgs/development/ruby-modules/with-packages/test.nix
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
# a generic test suite for all gems for all ruby versions.
|
||||
# use via nix-build.
|
||||
let
|
||||
pkgs = import ../../../.. {};
|
||||
lib = pkgs.lib;
|
||||
stdenv = pkgs.stdenv;
|
||||
|
||||
rubyVersions = with pkgs; [
|
||||
ruby_2_7
|
||||
];
|
||||
|
||||
gemTests =
|
||||
(lib.mapAttrs
|
||||
(name: gem: [ name ])
|
||||
pkgs.ruby.gems) //
|
||||
(import ./require_exceptions.nix);
|
||||
|
||||
tests = ruby:
|
||||
lib.mapAttrs (name: gem:
|
||||
let
|
||||
test =
|
||||
if builtins.isList gemTests.${name}
|
||||
then pkgs.writeText "${name}.rb" ''
|
||||
puts "${name} GEM_HOME: #{ENV['GEM_HOME']}"
|
||||
${lib.concatStringsSep "\n" (map (n: "require '${n}'") gemTests.${name})}
|
||||
''
|
||||
else pkgs.writeText "${name}.rb" gemTests.${name};
|
||||
|
||||
deps = ruby.withPackages (g: [ g.${name} ]);
|
||||
in stdenv.mkDerivation {
|
||||
name = "test-gem-${ruby.name}-${name}";
|
||||
buildInputs = [ deps ];
|
||||
buildCommand = ''
|
||||
INLINEDIR=$PWD ruby ${test}
|
||||
touch $out
|
||||
'';
|
||||
}
|
||||
) ruby.gems;
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
name = "test-all-ruby-gems";
|
||||
buildInputs = builtins.foldl' (sum: ruby: sum ++ ( builtins.attrValues (tests ruby) )) [] rubyVersions;
|
||||
buildCommand = ''
|
||||
touch $out
|
||||
'';
|
||||
}
|
||||
76
pkgs/development/ruby-modules/with-packages/test.rb
Executable file
76
pkgs/development/ruby-modules/with-packages/test.rb
Executable file
|
|
@ -0,0 +1,76 @@
|
|||
#!/usr/bin/env ruby
|
||||
|
||||
# this is a quick and dirty test suite for easier analyzing of breakages in a
|
||||
# manual testing.
|
||||
# For automated testing use the test.nix
|
||||
|
||||
require 'fileutils'
|
||||
|
||||
class FakeGemfile
|
||||
attr_reader :gems
|
||||
|
||||
def initialize
|
||||
@gems = []
|
||||
end
|
||||
|
||||
def source(_source, &block)
|
||||
instance_exec(&block)
|
||||
end
|
||||
|
||||
def gem(name)
|
||||
@gems << name
|
||||
end
|
||||
end
|
||||
|
||||
gemfile = File.expand_path(File.join(__dir__, 'Gemfile'))
|
||||
packages = FakeGemfile.new.instance_eval(File.read(gemfile), gemfile)
|
||||
|
||||
test_cases = packages.map { |pkg| [pkg, "require '#{pkg}'"] }.to_h
|
||||
|
||||
test_cases.merge!(
|
||||
'digest-sha3' => "require 'digest/sha3'",
|
||||
'gitlab-markup' => "require 'github/markup'",
|
||||
'idn-ruby' => "require 'idn'",
|
||||
'net-scp' => "require 'net/scp'",
|
||||
'taglib-ruby' => "require 'taglib'",
|
||||
'net-ssh' => "require 'net/ssh'",
|
||||
'ruby-libvirt' => "require 'libvirt'",
|
||||
'ruby-lxc' => "require 'lxc'",
|
||||
'rubyzip' => "require 'zip'",
|
||||
'sinatra' => "require 'sinatra/base'",
|
||||
'libxml-ruby' => "require 'libxml'",
|
||||
'ruby-terminfo' => "require 'terminfo'",
|
||||
'ovirt-engine-sdk' => "require 'ovirtsdk4'",
|
||||
'fog-dnsimple' => "require 'fog/dnsimple'"
|
||||
)
|
||||
|
||||
test_cases['sequel_pg'] = <<~TEST
|
||||
require 'pg'
|
||||
require 'sequel'
|
||||
require 'sequel/adapters/postgresql'
|
||||
require 'sequel_pg'
|
||||
TEST
|
||||
|
||||
tmpdir = File.expand_path(File.join(__dir__, 'tests'))
|
||||
FileUtils.rm_rf(tmpdir)
|
||||
FileUtils.mkdir_p(tmpdir)
|
||||
|
||||
failing = test_cases.reject do |name, test_case|
|
||||
test_case = <<~SHELL
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i ruby -E "(import ../../../.. {}).ruby.withPackages (r: [ r.#{name} ] )"
|
||||
#{test_case}
|
||||
SHELL
|
||||
|
||||
file = File.join(tmpdir, "#{name}_test.rb")
|
||||
File.write(file, test_case)
|
||||
FileUtils.chmod('u=wrx', file)
|
||||
|
||||
system(file) && FileUtils.rm(file)
|
||||
end
|
||||
|
||||
exit if failing.empty?
|
||||
|
||||
puts "Following gems failed: #{failing.keys.join(' ')}"
|
||||
puts "tests for failing gems remain in #{tmpdir}"
|
||||
exit 1
|
||||
Loading…
Add table
Add a link
Reference in a new issue