[Git][java-team/jruby][master] 6 commits: d/rules: cleanup duplicate code

Jérôme Charaoui (@lavamind) gitlab at salsa.debian.org
Sat Dec 3 20:25:25 GMT 2022



Jérôme Charaoui pushed to branch master at Debian Java Maintainers / jruby


Commits:
d428c87f by Jérôme Charaoui at 2022-12-02T23:55:39-05:00
d/rules: cleanup duplicate code

Gbp-Dch: ignore

- - - - -
45b34962 by Jérôme Charaoui at 2022-12-03T14:47:03-05:00
d/rules: ship bin/exe binaries from default gems

This fixes one of the spec:ruby testcases.

- - - - -
1242d400 by Jérôme Charaoui at 2022-12-03T14:47:34-05:00
d/rules: apply classpaths to main jar

This is needed because we're yanking these jars from stdlib and patching
out their loading in ruby, so we need to make sure they're on the
classpath.

- - - - -
630a2e72 by Jérôme Charaoui at 2022-12-03T14:47:35-05:00
d/control: add ${mavenDepends} to dependencies

This is needed otherwise other packages declaring a dependency on
org.jruby ar build-time will expect the libraries to be present in the
local maven repo. However, they aren't strictly needed at runtime since
they're shaded (bundled) into the main jar.

There is likely room for improvement here.

- - - - -
0e2a54f0 by Jérôme Charaoui at 2022-12-03T14:47:57-05:00
d/control: improve bin and lib directories cleanup

- - - - -
c155c725 by Jérôme Charaoui at 2022-12-03T14:48:05-05:00
Update changelog for 9.3.9.0+ds-1 release

- - - - -


5 changed files:

- debian/changelog
- debian/control
- + debian/jruby.classpath
- debian/jruby.install
- debian/rules


Changes:

=====================================
debian/changelog
=====================================
@@ -1,4 +1,4 @@
-jruby (9.3.9.0+ds-1) UNRELEASED; urgency=medium
+jruby (9.3.9.0+ds-1) unstable; urgency=medium
 
   * New upstream release incorporating security fixes for CVE-2021-31810
     CVE-2021-32066 (Closes: #895837, #1014818)
@@ -6,18 +6,15 @@ jruby (9.3.9.0+ds-1) UNRELEASED; urgency=medium
     libraries, and instead bundles a set of Ruby 2.6-compatible gems in a pair
     of orig-source tarballs. See d/README.source for details.
     (Closes: #922682, #960247)
-  * Updated d/copyright for latest release and new components, exclude
-    windows binaries from sources
+  * Updated d/copyright for latest release and new components
+  * Repacked source to exclude prebuilt Windows binaries
   * d/control:
     - Dropped C Ruby shared system libs from Build-Deps
     - Dropped jruby-openssl from Build-Deps, now bundled via orig-source gem
     - Dropped upstream deprecated Build-Deps: libbytelist-java,
       libmodulator-java, libunsafe-fences-java, libunsafe-mock-java, nailgun
     - Dropped redundant Build-Dep: libjnr-x86asm-java
-    - Dropped unneeded java-lib Depends for binary since we ship a shaded jar
     + Added minimum versions for invokebinder and jffi Build-Deps
-    + Added versioned bouncycastle, jline2 and yaml-snake to Build-Deps and
-      track those bundled jars with new Built-Using
     + Added myself to Uploaders
     + Flagged testsuite-related Build-Deps with !nocheck
     + Bumped Standards-Version to 4.6.1, no changes needed
@@ -27,24 +24,24 @@ jruby (9.3.9.0+ds-1) UNRELEASED; urgency=medium
     + Rebased patches for new upstream version
     + Added several patches for testsuite fixes and workarounds
   * d/rules:
-    - TODO clean target
     + Added get-orig-source target to pull upstream tarball and generate
       tarballs containing the required gems
     + Added execute_before_dh_auto_configure target to install ruby gems into
       the jruby source tree prior to subsequent build and test targets, and
       replace gem-bundled jars by those shipped in Debian packages
     - Streamlined build and test targets to avoid unnecessary maven invocations
-    - Rather than execute the complete set of jruby unit and integration
-      tests, focus on the main testsuites to keep execution time down, avoid
-      edge-case related test failures while maintaining good coverage
+    - Scaled down testing scope to java tests during build to focus unit and
+      integration testing in new autopkgtests
     + Fixed bin script shebangs not to use /usr/bin/env
+    + Patched out code for loading bundled jars in readline and psych gems
+    + Removed or replaced bundled fonts in documentation
   * Updated maven rules and ignoreRules, cleaned up empty mavenhelper files
-  * No longer ship jruby-gem/rdoc/ri/testrb binaries
-  * Updated d/watch, now implements repack
+  * Updated d/watch
   * Added d/upstream/metadata
   * Added autopkgtests
+  * Fixed typos in manpages
 
- -- Jérôme Charaoui <jerome at riseup.net>  Wed, 16 Nov 2022 09:08:22 -0500
+ -- Jérôme Charaoui <jerome at riseup.net>  Sat, 03 Dec 2022 12:32:59 -0500
 
 jruby (9.2.17.0-1) unstable; urgency=medium
 


=====================================
debian/control
=====================================
@@ -69,6 +69,7 @@ Depends:
  libjline2-java (>= 2.14.6),
  libyaml-snake-java (>= 1.33),
  ${misc:Depends},
+ ${maven:Depends},
 Recommends:
   fonts-lato,
 Description: 100% pure-Java implementation of Ruby


=====================================
debian/jruby.classpath
=====================================
@@ -0,0 +1 @@
+usr/share/java/jruby-core.jar /usr/share/java/jline2.jar /usr/share/java/jansi1.jar /usr/share/java/bcprov.jar /usr/share/java/bcutil.jar /usr/share/java/bctls.jar /usr/share/java/bcpkix.jar /usr/share/java/snakeyaml.jar


=====================================
debian/jruby.install
=====================================
@@ -1,10 +1,4 @@
-target/package/bin/ast                  usr/share/jruby/bin
-target/package/bin/gem                  usr/share/jruby/bin
-target/package/bin/irb                  usr/share/jruby/bin
-target/package/bin/jgem                 usr/share/jruby/bin
-target/package/bin/jirb                 usr/share/jruby/bin
-target/package/bin/jirb_swing           usr/share/jruby/bin
-target/package/bin/jruby                usr/share/jruby/bin
+target/package/bin/*                    usr/share/jruby/bin
 target/package/bin/.jruby.module_opts   usr/share/jruby/bin
 target/package/bin/jrubyc               usr/share/jruby/bin
 target/package/lib/jni                  usr/share/jruby/lib


=====================================
debian/rules
=====================================
@@ -10,8 +10,8 @@ export RUBYGEMS=lib/target/rubygems
 	dh $@ --buildsystem=maven
 
 execute_after_dh_auto_clean:
-	@rm -rf ./lib/ruby/gems
-	@rm -f ./lib/jruby.jar ./bin/jruby ./bin/irb
+	@rm -rf ./lib/ruby/gems ./lib/jruby.jar
+	@rm -f ./bin/bundle ./bin/bundler ./bin/irb ./bin/rdoc ./bin/ri
 	-cd ./spec/ffi/fixtures/ && rm -f *.o *.so
 	# we should perhaps make some attempt to cleanup lib/ruby/stdlib
 	# but it becomes so intertwined with the gem-installed libs that
@@ -51,10 +51,18 @@ execute_before_dh_auto_configure:
 		$(RUBYGEMS)/gems/psych-*/lib/psych_jars.rb
 	# copy ruby libs to stdlib directory (see lib/pom.rb)
 	cp -a $(RUBYGEMS)/gems/*/lib/* lib/ruby/stdlib
-	cp bin/jirb bin/irb
 	# default gem specifications
 	mkdir -p lib/ruby/gems/shared/specifications/default
 	cp -a $(RUBYGEMS)/specifications/* lib/ruby/gems/shared/specifications/default
+	# default gem binaries
+	mkdir -p lib/ruby/gems/shared/gems
+	cd $(RUBYGEMS)/gems && (															\
+		find . -maxdepth 2 -type d -and \( -name bin -or -name exe \) -printf "%P\n"	\
+			| while read dir; do														\
+				mkdir -p $(CURDIR)/lib/ruby/gems/shared/gems/$$dir ;					\
+				cp $$dir/* $(CURDIR)/lib/ruby/gems/shared/gems/$$dir ;					\
+				cp $$dir/* $(CURDIR)/bin ;												\
+		done )
 
 execute_after_dh_auto_configure:
 	# install maven-repo symlinks to fix jruby-stdlib dependency resolution
@@ -84,16 +92,15 @@ override_dh_prep:
 	tar zxf $(DIST_TARBALL) -C $(DIST_TARGET_DIR) --strip-components=1
 	# prepare package bin/ and jni/
 	cd $(DIST_TARGET_DIR) && (         						  					\
-		cp ./bin/jruby.bash ./bin/jruby											\
+		rm -f ./bin/jruby.sh ./bin/*.bat										\
+		&& mv ./bin/jruby.bash ./bin/jruby										\
 		&& sed -i '1s|^#!/usr/bin/env\sbash|#!/bin/bash|' ./bin/jruby			\
-		&& sed -i '1s|^#!/usr/bin/env\sjruby|#!/usr/bin/jruby|' ./bin/*			\
+		&& sed -i '1s|^#!/usr/bin/env\sruby|#!/usr/bin/jruby|' ./bin/*			\
+			./lib/ruby/gems/shared/gems/*/bin/*									\
+			./lib/ruby/gems/shared/gems/*/exe/*									\
 		&& chmod 0755 ./bin/*													\
 		&& echo "-Djruby.openssl.load.jars=false" >> ./bin/.jruby.module_opts	\
 		&& mkdir -p ./lib/jni/ )
-	# copy default gem gemspecs
-	mkdir -p $(DIST_TARGET_DIR)/lib/ruby/gems/shared/specifications/default
-	cp -a $(RUBYGEMS)/specifications/*	\
-		$(DIST_TARGET_DIR)/lib/ruby/gems/shared/specifications/default
 
 execute_after_dh_install:
 	# install additional maven poms and jars
@@ -106,6 +113,8 @@ execute_after_dh_install:
 		./maven/jruby-complete/target/jruby-complete-$(DEB_VERSION_UPSTREAM:+ds=).jar
 	# remove bundled font files from stdlib (rdoc templates)
 	find debian/jruby/usr/share/jruby/lib/ruby/stdlib -name \*.ttf -type f -print -delete
+	# apply Class-Path attribute to main jar
+	jh_classpath
 
 get-orig-source:
 	# jruby sources



View it on GitLab: https://salsa.debian.org/java-team/jruby/-/compare/3622f3da94d36227e63923842d02c974f66cc318...c155c725a717cfdda05ecf2fdfabfe607e19301a

-- 
View it on GitLab: https://salsa.debian.org/java-team/jruby/-/compare/3622f3da94d36227e63923842d02c974f66cc318...c155c725a717cfdda05ecf2fdfabfe607e19301a
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-java-commits/attachments/20221203/35d0176d/attachment.htm>


More information about the pkg-java-commits mailing list