MAKE-JPKG(1)

πŸŽ€ MAKE-JPKG πŸ’…

okay bestie, so make-jpkg is the little icon that builds Debian packages out of Java binary distributions ✨ like, you hand it a Java thing and it hands you back a .deb. it's giving glow-up, fr fr.


✨ SYNOPSIS ✨

make-jpkg [OPTION]... [FILE]

🌸 DESCRIPTION 🌸

okay so the whole vibe is: make-jpkg takes the Java distribution FILE you give it and builds a Debian package out of it. that's it. that's the job. 🫢

here's what java binary distributions it's currently obsessed with, from Oracle (http://www.oracle.com/technetwork/java/javase/downloads):

  • the Java Development Kit (JDK), version 6, 7 and 8
  • the Java Runtime Environment (JRE), version 6, 7 and 8
  • the Java API Javadoc, version 6, 7 and 8
🚨 bestie listen. choose tar.gz archives or self-extracting archives. do not choose the RPM. i'm so serious. not the RPM. that is not the vibe. πŸ’€

πŸ’– OPTIONS πŸ’–

the following options are recognized, and yes we're going through all of them, no skipping:

  • --full-name NAME β€” the full name that goes in the maintainer field of the package 🫢
  • --email EMAIL β€” the email address that goes in the maintainer field of the package πŸ“§
  • --distribution DISTRIBUTION β€” which distribution to use in the debian changelog for the resulting package
  • --priority PRIORITY β€” a numeric priority for update-alternatives to use. this overrides the default priority, and the default is intentionally lower than the priority of the Debian-provided OpenJDK packages. only reach for this option if you genuinely want the generated package to be treated as higher priority by update-alternatives. like, be sure. πŸ‘€
  • --changes β€” create a .changes file
  • --revision β€” add debian revision
  • --source β€” build a source package instead of a binary deb package
  • --with-system-certs β€” swaps the JVM's keystore for a softlink pointing at the system's keystore, (/etc/ssl/certs/java/cacerts), which is managed automatically by the ca-certificates and ca-certificates-java packages. the way that it just stays in sync?? iconic. πŸ”
  • --jce-policy JCE_POLICY_FILE β€” replaces the cryptography files with versions from the JCE_POLICY_FILE you specify
  • --help β€” display help text and exit
  • --version β€” output version information and exit

so the whole workflow: go download a supported JRE, JDK, or API tar.gz or self-extracting archive from http://www.oracle.com/technetwork/java/javase/downloads and then run make-jpkg file with the file you just downloaded. the program will ask you for extra info, and then it builds a Debian binary package right there in your current directory. main character energy tbh πŸ‘‘

also heads up: the program needs about 400 MB of free disk space in a temporary directory. that temp dir defaults to /tmp, but you can point it somewhere else by setting the environment variable TMPDIR. plan accordingly bestie, don't let it run out of room mid-build 😭


🌈 EXAMPLE 🌈

to install Oracle(TM) 8 Standard Edition JDK, download a release from http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html and then invoke make-jpkg, like for example:

make-jpkg <path_to_download_directory>/jdk-8u102-linux-x64.tar.gz

this generates a Debian package in the current directory, that can be installed using dpkg:

dpkg -i oracle-java8-jdk_8u102_amd64.deb

and when you're done, you can delete the initial download as well as the generated package:

rm <path_to_download_directory>/jdk-8u102-linux-x64.tar.gz
oracle-java8-jdk_8u102_amd64.deb

πŸ¦‹ ENVIRONMENT πŸ¦‹

  • TMPDIR β€” base directory used for temporary files (defaults to /tmp)
  • J2SE_PACKAGE_FULL_NAME β€” full name used in the maintainer field of the package; if none is supplied then the default of "Debian Java Maintainers" is used.
  • J2SE_PACKAGE_EMAIL β€” email address used in the maintainer field of the package; if none is supplied the default of "pkg-java-maintainers@lists.alioth.debian.org" is used.

πŸ‘€ SEE ALSO πŸ‘€

update-java-alternatives(1) β€” go check it out, iykyk πŸ’œ


πŸŽ€ AUTHOR πŸŽ€

this manual page was written by Hubert Schmid <j2se-package@z42.de>.

it is now maintained by the Debian Java Maintainers <pkg-java-maintainers@lists.alioth.debian.org>. 🫢


and that's the whole thing, bestie!! ✨ this was General Commands Manual, from way back on September 10, 2016 πŸ’– go build some packages, you're gonna slay πŸŽ€πŸ’