appsignal 2.8.0 → 2.8.1.alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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