appsignal 2.8.0 → 2.8.1.alpha.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 44c65af079aaf661799b20d076f1c5f11eb6bdb47ccdc6aa58dc85781c46d8c7
4
- data.tar.gz: 3448422ae801b26eb40ba300016331a85e233fa33e5332971c1529b95fe934d6
3
+ metadata.gz: 6e0fd938587f34bee839867fa82429bdf95bbd6b5f49720a01eb6fdeac029045
4
+ data.tar.gz: a854ec47f1be275ac6ac48116458bb6c1547e27af142e513dbca1a21387b03f2
5
5
  SHA512:
6
- metadata.gz: 610f635119df8b05bdaa3b01cd646594235dd51addde01d96d9433caac12b3c347518e70d941a3a14b594623698952501e09758c9207984aa1209af0bdd8032f
7
- data.tar.gz: 4995bd83545cc983821c90e9f1dae888bf6199a703e98a8026b4e8771ec7cf326f8344c2cd9328482c2ca78e785a0ed11f085f63832430cb6c92247056cc6655
6
+ metadata.gz: 267a3d4ae5fc3805e9427494d1a4c3472f7a85fd12ca9645e486e1aca98623637e2d7b6dab5192d662c1f74903091d6508df168c1c0d92ef49f83cddae3e0f17
7
+ data.tar.gz: 2e25ece6dd6b5551ce8bc86ba25a6b955f819ddada78ee599cfbd4357cc7a437ca2be73f99a662ddb923f636003ff85e0d717914a29f5c39ee56d0abffad6788
@@ -15,6 +15,7 @@ rvm:
15
15
  - "2.3.8"
16
16
  - "2.4.5"
17
17
  - "2.5.3"
18
+ - "2.6.0"
18
19
  - "jruby-19mode"
19
20
 
20
21
  gemfile:
@@ -56,6 +57,10 @@ matrix:
56
57
  gemfile: "gemfiles/rails-4.0.gemfile"
57
58
  - rvm: "2.5.3"
58
59
  gemfile: "gemfiles/rails-4.1.gemfile"
60
+ - rvm: "2.6.0"
61
+ gemfile: "gemfiles/rails-4.0.gemfile"
62
+ - rvm: "2.6.0"
63
+ gemfile: "gemfiles/rails-4.1.gemfile"
59
64
 
60
65
  allow_failures:
61
66
  - rvm: "2.4.5"
@@ -70,9 +75,12 @@ env:
70
75
  - "JRUBY_OPTS=''" # Workaround https://github.com/travis-ci/travis-ci/issues/6471
71
76
 
72
77
  before_install:
73
- - "gem update --system"
78
+ - "gem update --system 2.7.8"
74
79
  - "gem update bundler"
75
80
  before_script:
76
81
  - "bundle exec rake extension:install"
82
+ after_failure:
83
+ - "find . -name ext/install.log -exec cat {} \\;"
84
+ - "find . -name ext/mkmf.log -exec cat {} \\;"
77
85
 
78
86
  script: "bundle exec rake test"
@@ -1,3 +1,6 @@
1
+ # 2.8.1
2
+ - Fix installation on Ruby 2.6 for libc and musl library builds. PR #453
3
+
1
4
  # 2.8.0
2
5
  - Group extension and agent tests in diagnose output. PR #437
3
6
  - Add diagnose --[no-]send-report option. PR #438
data/Rakefile CHANGED
@@ -239,6 +239,7 @@ namespace :extension do
239
239
  appsignal-agent \
240
240
  appsignal.h \
241
241
  appsignal_extension.o \
242
+ appsignal_extension.so \
242
243
  appsignal_extension.bundle \
243
244
  install.log \
244
245
  libappsignal.* \
@@ -1,7 +1,7 @@
1
1
  require File.expand_path("../../lib/appsignal/version.rb", __FILE__)
2
2
  require File.expand_path("../base.rb", __FILE__)
3
3
 
4
- def install
4
+ def install # rubocop:disable Metrics/CyclomaticComplexity
5
5
  logger.info "Installing appsignal agent #{Appsignal::VERSION} for Ruby #{RUBY_VERSION} on #{RUBY_PLATFORM}"
6
6
  write_agent_architecture
7
7
  return unless check_architecture
@@ -16,18 +16,22 @@ def install
16
16
  unarchive(archive)
17
17
  end
18
18
 
19
+ is_linux_system = [
20
+ Appsignal::System::LINUX_TARGET,
21
+ Appsignal::System::MUSL_TARGET
22
+ ].include?(PLATFORM)
23
+
19
24
  logger.info "Creating makefile"
20
25
  require "mkmf"
26
+
27
+ link_libraries if is_linux_system
28
+
21
29
  if !have_library("appsignal", "appsignal_start", "appsignal.h")
22
30
  installation_failed "Aborting installation, libappsignal.a or appsignal.h not found"
23
31
  elsif !find_executable("appsignal-agent", EXT_PATH)
24
32
  installation_failed "Aborting installation, appsignal-agent not found"
25
33
  else
26
- with_static_link = [
27
- Appsignal::System::LINUX_TARGET,
28
- Appsignal::System::MUSL_TARGET
29
- ].include?(PLATFORM)
30
- if with_static_link
34
+ if is_linux_system
31
35
  # Statically link libgcc and libgcc_s libraries.
32
36
  # Dependencies of the libappsignal extension library.
33
37
  # If the gem is installed on a host with build tools installed, but is
@@ -45,4 +49,34 @@ rescue => ex
45
49
  end
46
50
  end
47
51
 
52
+ # Ruby 2.6 requires us to statically link more libraries we use in our
53
+ # extension library than previous versions. Needed for normal Linux libc
54
+ # and musl builds.
55
+ def link_libraries
56
+ if RbConfig::CONFIG["THREAD_MODEL"] == "pthread"
57
+ logger.info "Linking extension against 'pthread' library"
58
+ # Link gem extension against pthread library
59
+ have_library "pthread"
60
+ have_required_function "pthread_create"
61
+ end
62
+
63
+ # Links gem extension against the `dl` library. This is needed when Ruby is
64
+ # not linked against `dl` itself, so link it on the gem extension.
65
+ logger.info "Linking extension against 'dl' library"
66
+ have_library "dl"
67
+ # Check if functions are available now from the linked library
68
+ %w[dlopen dlclose dlsym].each do |func|
69
+ have_required_function func
70
+ end
71
+ end
72
+
73
+ def have_required_function(func) # rubocop:disable Naming/PredicateName
74
+ return if have_func(func)
75
+
76
+ installation_failed "Aborting installation, missing function '#{func}'"
77
+ # Exit with true/0/success because the AppSignal installation should never
78
+ # break a build
79
+ exit
80
+ end
81
+
48
82
  install
@@ -1,6 +1,7 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  gem 'capistrano', '~> 3.0'
4
+ gem 'i18n', '~> 1.2.0'
4
5
  gem 'net-ssh', '2.9.2'
5
6
  gem 'rack', '~> 1.6'
6
7
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Appsignal
4
- VERSION = "2.8.0".freeze
4
+ VERSION = "2.8.1.alpha.1".freeze
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appsignal
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.8.0
4
+ version: 2.8.1.alpha.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Beekman
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2018-12-20 00:00:00.000000000 Z
12
+ date: 2018-12-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rack
@@ -364,12 +364,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
364
364
  version: '1.9'
365
365
  required_rubygems_version: !ruby/object:Gem::Requirement
366
366
  requirements:
367
- - - ">="
367
+ - - ">"
368
368
  - !ruby/object:Gem::Version
369
- version: '0'
369
+ version: 1.3.1
370
370
  requirements: []
371
- rubyforge_project:
372
- rubygems_version: 2.7.6
371
+ rubygems_version: 3.0.1
373
372
  signing_key:
374
373
  specification_version: 4
375
374
  summary: Logs performance and exception data from your app to appsignal.com