From: Deepak Bhole <dbhole@redhat.com> To: jpackage-discuss@zarb.org
Based on the initial design specifications for a clean-binary-files, I have created a script that does so (with some added functionality that became evident as necessary during design).
The original mail is here: https://www.zarb.org/pipermail/jpackage-discuss/2005-November/009158.html
There are now 3 files: clean-binary-files check-binary-files create-jar-links
Due to the complex functionality and flexibility that is expected from the script (set), the syntax seems a bit daunting. Any input with regards to this matter, or any other, would be appreciated.
Example use case
Suppose there is a vanilla tarball abc-1.tar.gz with some binary files (jars) in it. In the source repo, we would want a clean copy without any jars. We can use the scripts to achieve this:
To generate an instructions file: clean-binary-files -e <exclusion file> -l -a abc-1.tar.gz > instructions
This creates an 'instructions' file, which contains info on what stays and what goes.
Then, one can run: clean-binary-files -f instructions -n -a abc-1.tar.gz
This would create abc-1-clean.tar.gz for uploading into jpp/fedora/etc. repositories with no binary (jar) files.
In %prep for the rpm spec, one would have: check-binary-files -f instructions -a abc-1-clean.tar.gz
This ensures that the tarball is clean, and has nothing extra, or missing.
Following this, one can extract the tarball, cd to it, and run: create-jar-links -f <instructions> -d <custom_jar_map>
This would call build-jar-repository and create symlinks, with extra mappings (form vanilla jar names to jpp names) that are specifiable via the custom jar map.
Alternatively, if you have a vanilla tarball, you can clean and create symlinks in it's place all at once by: clean-binary-files -e <exclusion file> -d <custom_jar_map> -a abc-1.tar.gz
Note: If the -a <file> is not given to clean-binary-files, all actions are performed on current directory.
--help output from each of the scripts:
Usage: $0 {[-f {-, instructions_file}], [-e exclusion_file] [-l]} [-a archive_file] [-d custom_jar_map] [-n] [-p] [-s]