jruby-launcher 2.0.0.pre3-java → 2.0.1-java

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: 66622259dbdee0e98846fb968d3a563a76b6e5e2c2f7b5a582c1d7deea490f30
4
- data.tar.gz: 54d1ea1244e8a127b27b6b691da3bbe55e64709c9e04da10f8d68ebbe3a23c7f
3
+ metadata.gz: ce700065b9536475d0189601d05547794bc1404a6a113c2970787ba4a33f4ac3
4
+ data.tar.gz: 3f1d5df96d0d30f3996158e5916e83b083f98b4b001268d16506c082813b73b3
5
5
  SHA512:
6
- metadata.gz: 88721cb3c1123f98074a748b7411d0be1cca648ec706d7dc77bea488af1eadb5405a76f8c42162aa195ccbe74ef5c6e927d2aab8cafcdd9f7906e949791ebc74
7
- data.tar.gz: ce7d34b70c77bbb60e631a0f4c7306c0d391c09bd9583b0361c10ff6dbeefa407141f4a74d622ceb12064f00c3ff10c04e47d73740b6da528399073e4c12e8e7
6
+ metadata.gz: d0c614a29cf3b9f267fc3ce6ef2b0646e09485b9cd1cf17e873e6e2cb174e924cd86bef6b81cf87cc6c1d7f7d7eb903000ffb32ed985e2cfc1d27cb6b5b8a3bd
7
+ data.tar.gz: 39362111cace4f25ad54bfe32f27feb881b6fce946fd7d6706976f6c11049daaf114ab1b4239b430b32c10b0ab9c25223ef78fc1987c2b44e42c98ff2159cc88
data/Makefile CHANGED
@@ -37,9 +37,12 @@ install:
37
37
  @if [ x$(BINDIR) = xnotspecified/bin ]; then echo "Please define where to install by passing PREFIX=<jruby-home>."; exit 1; fi
38
38
  @if [ ! -w $(BINDIR) ]; then echo "'$(BINDIR)' does not exist or cannot write to '$(BINDIR)'."; exit 1; fi
39
39
  @if [ -f $(BINDIR)/jruby -a ! -w $(BINDIR)/jruby ]; then echo "Cannot write to '$(BINDIR)/jruby'."; exit 1; fi
40
- cp ./jruby $(BINDIR)/jruby
40
+ cp -a ./jruby $(BINDIR)/jruby
41
41
  @if [ x$(PREFIX) = xnotspecified ]; then echo "Please define where to install by passing PREFIX=<jruby-home>."; exit 1; fi
42
- @if [ ! -f $(BINDIR)/jruby.sh ]; then cp ./exe/jruby.sh $(BINDIR)/jruby.sh; fi
42
+ # Restore jruby.sh if it has been deleted
43
+ @if [ ! -f $(BINDIR)/jruby.sh ]; then cp -a ./exe/jruby.sh $(BINDIR)/jruby.sh; fi
44
+ # Install a backup jruby.sh in case it is deleted later
45
+ cp -a ./exe/jruby.sh $(BINDIR)/jruby.sh.bak
43
46
 
44
47
  test:
45
48
  $(RAKE)
data/exe/jruby.sh CHANGED
@@ -507,23 +507,35 @@ fi
507
507
  # shellcheck source=/dev/null
508
508
  if [ -f "$JAVA_HOME/release" ]; then
509
509
  java_version=$(. "$JAVA_HOME/release" && echo "${JAVA_VERSION-}")
510
- if echo "${java_version}" | grep -q "1.8.\\.*"; then
511
- java_version=8
512
- fi
510
+
511
+ # convert version to major, considering 1.8 as 8
512
+ case $java_version in
513
+ 1.8 | 1.8.*) java_major=8 ;;
514
+ *) java_major=${java_version%%.*} ;;
515
+ esac
513
516
  else
514
- java_version=8
517
+ # assume Java 8 if no release file
518
+ java_version=1.8
519
+ java_major=8
515
520
  fi
521
+
516
522
  # shellcheck source=/dev/null
517
- if [ -f "$JRUBY_HOME/bin/.java-version" ]; then
518
- minimum_java_version=$(. "$JRUBY_HOME/bin/.java-version" && echo "${JRUBY_MINIMUM_JAVA_VERSION-}")
523
+ if [ -f "$JRUBY_HOME/bin/.java-version" ] && . "$JRUBY_HOME/bin/.java-version" && [ "${JRUBY_MINIMUM_JAVA_VERSION-}" ]; then
524
+ minimum_java_version=$JRUBY_MINIMUM_JAVA_VERSION
519
525
  else
520
526
  # Only 9.4.12.0 and earlier will have shipped without a .java-version file, so fall back on minimum of 8
521
527
  minimum_java_version=8
522
528
  fi
523
529
  add_log "Detected Java version: $java_version"
524
530
 
525
- # Split version out for integer comparisons
526
- java_major=${java_version%%.*}
531
+ # Present a useful error if running a Java version lower than bin/.java-version
532
+ if [ "$java_major" -lt "$minimum_java_version" ]; then
533
+ echo "This version of JRuby requires Java ${minimum_java_version}+."
534
+ echo "Make sure JAVA_HOME points at JDK ${minimum_java_version} or higher"
535
+ echo "Detected Java version: $java_version"
536
+ echo "Detected JAVA_HOME: $JAVA_HOME"
537
+ exit 1
538
+ fi
527
539
 
528
540
  # AppCDS support
529
541
  if [ "$java_major" -ge 13 ] && exists "$JAVA_HOME"/lib/server/*.jsa; then
@@ -536,14 +548,6 @@ readonly java_has_appcds
536
548
  # Default to using AppCDS if available
537
549
  use_jsa_file="$java_has_appcds"
538
550
 
539
- # Present a useful error if running a Java version lower than bin/.java-version
540
- if [ "$java_major" -lt "$minimum_java_version" ]; then
541
- echo "This version of JRuby requires Java ${minimum_java_version}+."
542
- echo "Make sure JAVA_HOME points at JDK ${minimum_java_version} or higher"
543
- echo "Current JAVA_HOME: $JAVA_HOME"
544
- exit 1
545
- fi
546
-
547
551
  # AppCDS autogeneration
548
552
  if [ "$java_major" -ge 19 ]; then
549
553
  java_has_appcds_autogenerate=true
@@ -1,3 +1,3 @@
1
1
  module JRubyLauncher
2
- VERSION = "2.0.0.pre3"
2
+ VERSION = "2.0.1"
3
3
  end
data/unixlauncher.c CHANGED
@@ -13,8 +13,10 @@
13
13
  * contained within it.
14
14
  */
15
15
 
16
- static const char script_name[] = "jruby.sh";
16
+ #define LENGTH(a) (sizeof(a) / sizeof(0[a]))
17
17
 
18
+ static const char *script_names[] = { "jruby.sh", "jruby.sh.bak" };
19
+ static const char *no_scripts_error = "jruby.sh or jruby.sh.bak";
18
20
 
19
21
  static char *which(const char *const executable) {
20
22
  const size_t exe_length = strlen(executable);
@@ -100,7 +102,7 @@ int unixlauncher_run(int argc, char *argv[], char *envp[]) {
100
102
  self_path = which(argv[0]);
101
103
 
102
104
  if (self_path == NULL) {
103
- fprintf(stderr, "Error: Could not find %s executable\n", script_name);
105
+ fprintf(stderr, "Error: Could not find %s executable\n", argv[0]);
104
106
  return 1;
105
107
  }
106
108
 
@@ -118,25 +120,30 @@ int unixlauncher_run(int argc, char *argv[], char *envp[]) {
118
120
  }
119
121
  size_t script_dir_length = strlen(script_dir);
120
122
 
121
- // Allocate space for complete script path
122
- size_t script_path_length = strlen(script_name) + script_dir_length + 1;
123
- // Leave space for null terminator
124
- char *script_path = malloc(script_path_length + 1);
123
+ // Try main script and backup script before giving up
124
+ for (int i = 0; i < LENGTH(script_names); i++) {
125
+ const char *script_name = script_names[i];
125
126
 
126
- // Concatenate script dir and script name
127
- memcpy(script_path, script_dir, script_dir_length);
128
- script_path[script_dir_length] = '/';
129
- memcpy(script_path + script_dir_length + 1, script_name, strlen(script_name));
130
- script_path[script_path_length] = '\0';
127
+ // Allocate space for complete script path
128
+ size_t script_path_length = strlen(script_name) + script_dir_length + 1;
129
+ // Leave space for null terminator
130
+ char *script_path = malloc(script_path_length + 1);
131
131
 
132
- // Reuse argv for script command line
133
- argv[0] = script_path;
134
- int ret = execv(argv[0], argv);
132
+ // Concatenate script dir and script name
133
+ memcpy(script_path, script_dir, script_dir_length);
134
+ script_path[script_dir_length] = '/';
135
+ memcpy(script_path + script_dir_length + 1, script_name, strlen(script_name));
136
+ script_path[script_path_length] = '\0';
135
137
 
136
- if (ret < 0) {
137
- fprintf(stderr, "%s: %s: %s\n", original_self, strerror(errno), script_path);
138
+ // Reuse argv for script command line
139
+ argv[0] = script_path;
140
+ execv(argv[0], argv);
141
+
142
+ free(script_path);
138
143
  }
139
144
 
140
- free(script_path);
145
+ // If we get here neither script was available, so we error
146
+ fprintf(stderr, "%s: No executable %s found in %s\n", original_self, no_scripts_error, script_dir);
147
+
141
148
  return EXIT_FAILURE;
142
149
  }
data/version.h CHANGED
@@ -6,6 +6,6 @@
6
6
  #ifndef _VERSION_H_
7
7
  #define _VERSION_H_
8
8
 
9
- #define JRUBY_LAUNCHER_VERSION "2.0.0.pre3"
9
+ #define JRUBY_LAUNCHER_VERSION "2.0.1"
10
10
 
11
11
  #endif // ! _VERSION_H_
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jruby-launcher
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.pre3
4
+ version: 2.0.1
5
5
  platform: java
6
6
  authors:
7
7
  - Nick Sieger
8
8
  - Vladimir Sizikov
9
- autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2025-04-08 00:00:00.000000000 Z
11
+ date: 2025-04-12 00:00:00.000000000 Z
13
12
  dependencies: []
14
13
  description: Builds and installs a native launcher for JRuby on your system
15
14
  email:
@@ -56,7 +55,6 @@ files:
56
55
  homepage: http://jruby.org
57
56
  licenses: []
58
57
  metadata: {}
59
- post_install_message:
60
58
  rdoc_options: []
61
59
  require_paths:
62
60
  - lib
@@ -67,12 +65,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
67
65
  version: '0'
68
66
  required_rubygems_version: !ruby/object:Gem::Requirement
69
67
  requirements:
70
- - - ">"
68
+ - - ">="
71
69
  - !ruby/object:Gem::Version
72
- version: 1.3.1
70
+ version: '0'
73
71
  requirements: []
74
- rubygems_version: 3.0.3.1
75
- signing_key:
72
+ rubygems_version: 3.6.3
76
73
  specification_version: 4
77
74
  summary: Native launcher for JRuby
78
75
  test_files: []