diff options
| author | mo khan <mo@mokhan.ca> | 2021-03-08 22:14:40 -0700 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2021-03-08 22:14:40 -0700 |
| commit | 08d95921be282ad2c6253e005ed3ef6535a4efa0 (patch) | |
| tree | f0c07994e72ffb3d7a6078030a3ec5a20a37e3cc | |
initial commit
| -rw-r--r-- | .gitignore | 10 | ||||
| -rw-r--r-- | .kitchen.yml | 41 | ||||
| -rw-r--r-- | Berksfile | 12 | ||||
| -rw-r--r-- | Gemfile | 21 | ||||
| -rw-r--r-- | Gemfile.lock | 361 | ||||
| -rw-r--r-- | README.md | 124 | ||||
| -rwxr-xr-x | bin/omnibus | 29 | ||||
| -rw-r--r-- | config/projects/spandx.rb | 25 | ||||
| -rw-r--r-- | config/software/preparation.rb | 30 | ||||
| -rw-r--r-- | config/software/spandx-zlib.rb | 55 | ||||
| -rw-r--r-- | omnibus.rb | 55 | ||||
| -rwxr-xr-x | package-scripts/spandx/postinst | 17 | ||||
| -rwxr-xr-x | package-scripts/spandx/postrm | 9 | ||||
| -rwxr-xr-x | package-scripts/spandx/preinst | 7 | ||||
| -rwxr-xr-x | package-scripts/spandx/prerm | 15 | ||||
| -rw-r--r-- | resources/spandx/pkg/background.png | bin | 0 -> 19502 bytes | |||
| -rw-r--r-- | resources/spandx/pkg/distribution.xml.erb | 22 | ||||
| -rw-r--r-- | resources/spandx/pkg/license.html.erb | 3 | ||||
| -rw-r--r-- | resources/spandx/pkg/welcome.html.erb | 7 |
19 files changed, 843 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..cd0f4a1 --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +*.gem +.bundle +.kitchen/ +.kitchen.local.yml +vendor/bundle +pkg/* +.vagrant +bin/* +files/**/cache/ +vendor/cookbooks diff --git a/.kitchen.yml b/.kitchen.yml new file mode 100644 index 0000000..2d8ed6a --- /dev/null +++ b/.kitchen.yml @@ -0,0 +1,41 @@ +driver: + name: vagrant + forward_agent: yes + customize: + cpus: 2 + memory: 2048 + synced_folders: + - ['.', '/home/vagrant/spandx'] + +provisioner: + name: chef_zero + +platforms: + - name: centos-6 + run_list: yum-epel::default + - name: centos-7 + run_list: yum-epel::default + - name: debian-8 + run_list: apt::default + - name: debian-9 + run_list: apt::default + - name: freebsd-10 + run_list: freebsd::portsnap + - name: freebsd-11 + run_list: freebsd::portsnap + - name: ubuntu-14.04 + run_list: apt::default + - name: ubuntu-16.04 + run_list: apt::default + - name: ubuntu-18.04 + run_list: apt::default + +suites: + - name: default + run_list: omnibus::default + attributes: + omnibus: + build_user: vagrant + build_user_group: vagrant + build_user_password: vagrant + install_dir: /opt/spandx diff --git a/Berksfile b/Berksfile new file mode 100644 index 0000000..acac58e --- /dev/null +++ b/Berksfile @@ -0,0 +1,12 @@ +source 'https://supermarket.chef.io' + +cookbook 'omnibus' + +# Uncomment to use the latest version of the Omnibus cookbook from GitHub +# cookbook 'omnibus', github: 'chef-cookbooks/omnibus' + +group :integration do + cookbook 'apt', '~> 2.8' + cookbook 'freebsd', '~> 0.3' + cookbook 'yum-epel', '~> 0.6' +end @@ -0,0 +1,21 @@ +source 'https://rubygems.org' + +# Install omnibus +gem 'omnibus', '~> 8.0' + +# Use Chef's software definitions. It is recommended that you write your own +# software definitions, but you can clone/fork Chef's to get you started. +# gem 'omnibus-software', github: 'chef/omnibus-software' + +# This development group is installed by default when you run `bundle install`, +# but if you are using Omnibus in a CI-based infrastructure, you do not need +# the Test Kitchen-based build lab. You can skip these unnecessary dependencies +# by running `bundle install --without development` to speed up build times. +group :development do + # Use Berkshelf for resolving cookbook dependencies + gem 'berkshelf' + + # Use Test Kitchen with Vagrant for converging the build environment + gem 'test-kitchen' + gem 'kitchen-vagrant' +end diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 0000000..2bf92f8 --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,361 @@ +GEM + remote: https://rubygems.org/ + specs: + addressable (2.7.0) + public_suffix (>= 2.0.2, < 5.0) + awesome_print (1.9.2) + aws-eventstream (1.1.1) + aws-partitions (1.431.1) + aws-sdk-core (3.112.1) + aws-eventstream (~> 1, >= 1.0.2) + aws-partitions (~> 1, >= 1.239.0) + aws-sigv4 (~> 1.1) + jmespath (~> 1.0) + aws-sdk-kms (1.42.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sigv4 (~> 1.1) + aws-sdk-s3 (1.90.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sdk-kms (~> 1) + aws-sigv4 (~> 1.1) + aws-sigv4 (1.2.3) + aws-eventstream (~> 1, >= 1.0.2) + bcrypt_pbkdf (1.1.0.rc2) + berkshelf (7.2.0) + chef (>= 15.7.32) + chef-config + cleanroom (~> 1.0) + concurrent-ruby (~> 1.0) + minitar (>= 0.6) + mixlib-archive (>= 1.1.4, < 2.0) + mixlib-config (>= 2.2.5) + mixlib-shellout (>= 2.0, < 4.0) + octokit (~> 4.0) + retryable (>= 2.0, < 4.0) + solve (~> 4.0) + thor (>= 0.20) + builder (3.2.4) + chef (16.10.17) + addressable + bcrypt_pbkdf (= 1.1.0.rc2) + bundler (>= 1.10) + chef-config (= 16.10.17) + chef-utils (= 16.10.17) + chef-vault + chef-zero (>= 14.0.11) + diff-lcs (>= 1.2.4, < 1.4.0) + ed25519 (~> 1.2) + erubis (~> 2.7) + ffi (>= 1.9.25) + ffi-libarchive (~> 1.0, >= 1.0.3) + ffi-yajl (~> 2.2) + highline (>= 1.6.9, < 3) + iniparse (~> 1.4) + inspec-core (~> 4.23) + license-acceptance (>= 1.0.5, < 3) + mixlib-archive (>= 0.4, < 2.0) + mixlib-authentication (>= 2.1, < 4) + mixlib-cli (>= 2.1.1, < 3.0) + mixlib-log (>= 2.0.3, < 4.0) + mixlib-shellout (>= 3.1.1, < 4.0) + net-sftp (>= 2.1.2, < 4.0) + net-ssh (>= 5.1, < 7) + net-ssh-multi (~> 1.2, >= 1.2.1) + ohai (~> 16.0) + pastel + plist (~> 3.2) + proxifier (~> 1.0) + syslog-logger (~> 1.6) + train-core (~> 3.2, >= 3.2.28) + train-winrm (>= 0.2.5) + tty-prompt (~> 0.21) + tty-screen (~> 0.6) + tty-table (~> 0.11) + uuidtools (>= 2.1.5, < 3.0) + chef-cleanroom (1.0.2) + chef-config (16.10.17) + addressable + chef-utils (= 16.10.17) + fuzzyurl + mixlib-config (>= 2.2.12, < 4.0) + mixlib-shellout (>= 2.0, < 4.0) + tomlrb (~> 1.2) + chef-telemetry (1.0.29) + chef-config + concurrent-ruby (~> 1.0) + chef-utils (16.10.17) + chef-vault (4.1.0) + chef-zero (15.0.4) + ffi-yajl (~> 2.2) + hashie (>= 2.0, < 5.0) + mixlib-log (>= 2.0, < 4.0) + rack (~> 2.0, >= 2.0.6) + uuidtools (~> 2.1) + webrick + citrus (3.0.2) + cleanroom (1.0.0) + coderay (1.1.3) + concurrent-ruby (1.1.8) + diff-lcs (1.3) + ed25519 (1.2.4) + erubi (1.10.0) + erubis (2.7.0) + faraday (1.3.0) + faraday-net_http (~> 1.0) + multipart-post (>= 1.2, < 3) + ruby2_keywords + faraday-net_http (1.0.1) + faraday_middleware (1.0.0) + faraday (~> 1.0) + ffi (1.15.0) + ffi-libarchive (1.0.17) + ffi (~> 1.0) + ffi-yajl (2.3.4) + libyajl2 (~> 1.2) + fuzzyurl (0.9.0) + gssapi (1.3.1) + ffi (>= 1.0.1) + gyoku (1.3.1) + builder (>= 2.1.2) + hashie (4.1.0) + highline (2.0.3) + httpclient (2.8.3) + iniparse (1.5.0) + inspec-core (4.26.13) + addressable (~> 2.4) + chef-telemetry (~> 1.0) + faraday (>= 0.9.0, < 1.4) + faraday_middleware (~> 1.0) + hashie (>= 3.4, < 5.0) + license-acceptance (>= 0.2.13, < 3.0) + method_source (>= 0.8, < 2.0) + mixlib-log (~> 3.0) + multipart-post (~> 2.0) + parallel (~> 1.9) + parslet (>= 1.5, < 2.0) + pry (~> 0.13) + rspec (>= 3.9, < 3.11) + rspec-its (~> 1.2) + rubyzip (>= 1.2.2, < 3.0) + semverse (~> 3.0) + sslshake (~> 1.2) + thor (>= 0.20, < 2.0) + tomlrb (>= 1.2, < 2.1) + train-core (~> 3.0) + tty-prompt (~> 0.17) + tty-table (~> 0.10) + iostruct (0.0.4) + ipaddress (0.8.3) + jmespath (1.4.0) + json (2.5.1) + kitchen-vagrant (1.8.0) + test-kitchen (>= 1.4, < 3) + libyajl2 (1.2.0) + license-acceptance (2.1.13) + pastel (~> 0.7) + tomlrb (>= 1.2, < 3.0) + tty-box (~> 0.6) + tty-prompt (~> 0.20) + license_scout (1.2.9) + ffi-yajl (~> 2.2) + mixlib-shellout (>= 2.2, < 4.0) + toml-rb (>= 1, < 3) + little-plugger (1.1.4) + logging (2.3.0) + little-plugger (~> 1.1) + multi_json (~> 1.14) + method_source (1.0.0) + minitar (0.9) + mixlib-archive (1.1.7) + mixlib-log + mixlib-authentication (3.0.7) + mixlib-cli (2.1.8) + mixlib-config (3.0.9) + tomlrb + mixlib-install (3.12.7) + mixlib-shellout + mixlib-versioning + thor + mixlib-log (3.0.9) + mixlib-shellout (3.2.5) + chef-utils + mixlib-versioning (1.2.12) + molinillo (0.7.0) + multi_json (1.15.0) + multipart-post (2.1.1) + net-scp (3.0.0) + net-ssh (>= 2.6.5, < 7.0.0) + net-sftp (3.0.0) + net-ssh (>= 5.0.0, < 7.0.0) + net-ssh (6.1.0) + net-ssh-gateway (2.0.0) + net-ssh (>= 4.0.0) + net-ssh-multi (1.2.1) + net-ssh (>= 2.6.5) + net-ssh-gateway (>= 1.2.0) + nori (2.6.0) + octokit (4.20.0) + faraday (>= 0.9) + sawyer (~> 0.8.0, >= 0.5.3) + ohai (16.10.6) + chef-config (>= 12.8, < 17) + chef-utils (>= 16.0, < 17) + ffi (~> 1.9) + ffi-yajl (~> 2.2) + ipaddress + mixlib-cli (>= 1.7.0) + mixlib-config (>= 2.0, < 4.0) + mixlib-log (>= 2.0.1, < 4.0) + mixlib-shellout (>= 2.0, < 4.0) + plist (~> 3.1) + train-core + wmi-lite (~> 1.0) + omnibus (8.0.15) + aws-sdk-s3 (~> 1) + chef-cleanroom (~> 1.0) + chef-utils (>= 15.4) + ffi-yajl (~> 2.2) + license_scout (~> 1.0) + mixlib-shellout (>= 2.0, < 4.0) + mixlib-versioning + ohai (>= 15) + pedump + ruby-progressbar (~> 1.7) + thor (>= 0.18, < 2.0) + parallel (1.20.1) + parslet (1.8.2) + pastel (0.8.0) + tty-color (~> 0.5) + pedump (0.6.2) + awesome_print + iostruct (>= 0.0.4) + multipart-post (>= 2.0.0) + rainbow + zhexdump (>= 0.0.2) + plist (3.6.0) + proxifier (1.0.3) + pry (0.14.0) + coderay (~> 1.1) + method_source (~> 1.0) + public_suffix (4.0.6) + rack (2.2.3) + rainbow (3.0.0) + retryable (3.0.5) + rspec (3.10.0) + rspec-core (~> 3.10.0) + rspec-expectations (~> 3.10.0) + rspec-mocks (~> 3.10.0) + rspec-core (3.10.1) + rspec-support (~> 3.10.0) + rspec-expectations (3.10.1) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.10.0) + rspec-its (1.3.0) + rspec-core (>= 3.0.0) + rspec-expectations (>= 3.0.0) + rspec-mocks (3.10.2) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.10.0) + rspec-support (3.10.2) + ruby-progressbar (1.11.0) + ruby2_keywords (0.0.4) + rubyntlm (0.6.3) + rubyzip (2.3.0) + sawyer (0.8.2) + addressable (>= 2.3.5) + faraday (> 0.8, < 2.0) + semverse (3.0.0) + solve (4.0.4) + molinillo (~> 0.6) + semverse (>= 1.1, < 4.0) + sslshake (1.3.1) + strings (0.2.0) + strings-ansi (~> 0.2) + unicode-display_width (~> 1.5) + unicode_utils (~> 1.4) + strings-ansi (0.2.0) + syslog-logger (1.6.8) + test-kitchen (2.11.1) + bcrypt_pbkdf (~> 1.0) + chef-utils (>= 16.4.35) + ed25519 (~> 1.2) + license-acceptance (>= 1.0.11, < 3.0) + mixlib-install (~> 3.6) + mixlib-shellout (>= 1.2, < 4.0) + net-scp (>= 1.1, < 4.0) + net-ssh (>= 2.9, < 7.0) + net-ssh-gateway (>= 1.2, < 3.0) + thor (>= 0.19, < 2.0) + winrm (~> 2.0) + winrm-elevated (~> 1.0) + winrm-fs (~> 1.1) + thor (1.1.0) + toml-rb (2.0.1) + citrus (~> 3.0, > 3.0) + tomlrb (1.3.0) + train-core (3.5.2) + addressable (~> 2.5) + ffi (!= 1.13.0) + json (>= 1.8, < 3.0) + mixlib-shellout (>= 2.0, < 4.0) + net-scp (>= 1.2, < 4.0) + net-ssh (>= 2.9, < 7.0) + train-winrm (0.2.12) + winrm (>= 2.3.6, < 3.0) + winrm-elevated (~> 1.2.2) + winrm-fs (~> 1.0) + tty-box (0.7.0) + pastel (~> 0.8) + strings (~> 0.2.0) + tty-cursor (~> 0.7) + tty-color (0.6.0) + tty-cursor (0.7.1) + tty-prompt (0.23.0) + pastel (~> 0.8) + tty-reader (~> 0.8) + tty-reader (0.9.0) + tty-cursor (~> 0.7) + tty-screen (~> 0.8) + wisper (~> 2.0) + tty-screen (0.8.1) + tty-table (0.12.0) + pastel (~> 0.8) + strings (~> 0.2.0) + tty-screen (~> 0.8) + unicode-display_width (1.7.0) + unicode_utils (1.4.0) + uuidtools (2.2.0) + webrick (1.7.0) + winrm (2.3.6) + builder (>= 2.1.2) + erubi (~> 1.8) + gssapi (~> 1.2) + gyoku (~> 1.0) + httpclient (~> 2.2, >= 2.2.0.2) + logging (>= 1.6.1, < 3.0) + nori (~> 2.0) + rubyntlm (~> 0.6.0, >= 0.6.3) + winrm-elevated (1.2.3) + erubi (~> 1.8) + winrm (~> 2.0) + winrm-fs (~> 1.0) + winrm-fs (1.3.5) + erubi (~> 1.8) + logging (>= 1.6.1, < 3.0) + rubyzip (~> 2.0) + winrm (~> 2.0) + wisper (2.0.1) + wmi-lite (1.0.5) + zhexdump (0.0.2) + +PLATFORMS + x86_64-darwin-19 + +DEPENDENCIES + berkshelf + kitchen-vagrant + omnibus (~> 8.0) + test-kitchen + +BUNDLED WITH + 2.2.11 diff --git a/README.md b/README.md new file mode 100644 index 0000000..6ae3163 --- /dev/null +++ b/README.md @@ -0,0 +1,124 @@ +spandx Omnibus project +====================== +This project creates full-stack platform-specific packages for +`spandx`! + +Installation +------------ +You must have a sane Ruby 2.0.0+ environment with Bundler installed. Ensure all +the required gems are installed: + +```shell +$ bundle install --binstubs +``` + +Usage +----- +### Build + +You create a platform-specific package using the `build project` command: + +```shell +$ bin/omnibus build spandx +``` + +The platform/architecture type of the package created will match the platform +where the `build project` command is invoked. For example, running this command +on a MacBook Pro will generate a Mac OS X package. After the build completes +packages will be available in the `pkg/` folder. + +### Clean + +You can clean up all temporary files generated during the build process with +the `clean` command: + +```shell +$ bin/omnibus clean spandx +``` + +Adding the `--purge` purge option removes __ALL__ files generated during the +build including the project install directory (`/opt/spandx`) and +the package cache directory (`/var/cache/omnibus/pkg`): + +```shell +$ bin/omnibus clean spandx --purge +``` + +### Publish + +Omnibus has a built-in mechanism for releasing to a variety of "backends", such +as Amazon S3. You must set the proper credentials in your +[`omnibus.rb`](omnibus.rb) config file or specify them via the command line. + +```shell +$ bin/omnibus publish path/to/*.deb --backend s3 +``` + +### Help + +Full help for the Omnibus command line interface can be accessed with the +`help` command: + +```shell +$ bin/omnibus help +``` + +Version Manifest +---------------- + +Git-based software definitions may specify branches as their +default_version. In this case, the exact git revision to use will be +determined at build-time unless a project override (see below) or +external version manifest is used. To generate a version manifest use +the `omnibus manifest` command: + +``` +omnibus manifest PROJECT -l warn +``` + +This will output a JSON-formatted manifest containing the resolved +version of every software definition. + + +Kitchen-based Build Environment +------------------------------- +Every Omnibus project ships with a project-specific +[Berksfile](https://docs.chef.io/berkshelf.html) that will allow you to build +your omnibus projects on all of the platforms listed in the +[`.kitchen.yml`](.kitchen.yml). You can add/remove additional platforms as +needed by changing the list found in the [`.kitchen.yml`](.kitchen.yml) +`platforms` YAML stanza. + +This build environment is designed to get you up-and-running quickly. However, +there is nothing that restricts you from building on other platforms. Simply use +the [omnibus cookbook](https://github.com/chef-cookbooks/omnibus) to setup your +desired platform and execute the build steps listed above. + +The default build environment requires Test Kitchen and VirtualBox for local +development. Test Kitchen also exposes the ability to provision instances using +various cloud providers like AWS, DigitalOcean, or OpenStack. For more +information, please see the [Test Kitchen documentation](https://kitchen.ci/). + +Once you have tweaked your [`.kitchen.yml`](.kitchen.yml) (or +[`.kitchen.local.yml`](.kitchen.local.yml)) to your liking, you can bring up an +individual build environment using the `kitchen` command. + + +```shell +$ bin/kitchen converge ubuntu-1804 +``` + +Then login to the instance and build the project as described in the Usage +section: + +```shell +$ bin/kitchen login ubuntu-1804 +[vagrant@ubuntu...] $ . load-omnibus-toolchain.sh +[vagrant@ubuntu...] $ [ -e .bundle ] && sudo chown -R vagrant:vagrant .bundle +[vagrant@ubuntu...] $ cd spandx # or 'cd spandx/omnibus' if your omnibus project is embedded in your main project +[vagrant@ubuntu...] $ bundle install +[vagrant@ubuntu...] $ bin/omnibus build spandx +``` + +For a complete list of all commands and platforms, run `kitchen list` or +`kitchen help`. diff --git a/bin/omnibus b/bin/omnibus new file mode 100755 index 0000000..4ad3b34 --- /dev/null +++ b/bin/omnibus @@ -0,0 +1,29 @@ +#!/usr/bin/env ruby +# frozen_string_literal: true + +# +# This file was generated by Bundler. +# +# The application 'omnibus' is installed as part of a gem, and +# this file is here to facilitate running it. +# + +require "pathname" +ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile", + Pathname.new(__FILE__).realpath) + +bundle_binstub = File.expand_path("../bundle", __FILE__) + +if File.file?(bundle_binstub) + if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/ + load(bundle_binstub) + else + abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run. +Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.") + end +end + +require "rubygems" +require "bundler/setup" + +load Gem.bin_path("omnibus", "omnibus") diff --git a/config/projects/spandx.rb b/config/projects/spandx.rb new file mode 100644 index 0000000..628c97e --- /dev/null +++ b/config/projects/spandx.rb @@ -0,0 +1,25 @@ +# +# Copyright 2021 YOUR NAME +# +# All Rights Reserved. +# + +name "spandx" +maintainer "CHANGE ME" +homepage "https://CHANGE-ME.com" + +# Defaults to C:/spandx on Windows +# and /opt/spandx on all other platforms +install_dir "#{default_root}/#{name}" + +build_version Omnibus::BuildVersion.semver +build_iteration 1 + +# Creates required build directories +dependency "preparation" + +# spandx dependencies/components +# dependency "somedep" + +exclude "**/.git" +exclude "**/bundler/git" diff --git a/config/software/preparation.rb b/config/software/preparation.rb new file mode 100644 index 0000000..3b4c4b4 --- /dev/null +++ b/config/software/preparation.rb @@ -0,0 +1,30 @@ +# +# Copyright 2021 YOUR NAME +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +name "preparation" +description "the steps required to prepare the build" +default_version "1.0.0" + +license :project_license +skip_transitive_dependency_licensing true + +build do + block do + touch "#{install_dir}/embedded/lib/.gitkeep" + touch "#{install_dir}/embedded/bin/.gitkeep" + touch "#{install_dir}/bin/.gitkeep" + end +end diff --git a/config/software/spandx-zlib.rb b/config/software/spandx-zlib.rb new file mode 100644 index 0000000..c5c0507 --- /dev/null +++ b/config/software/spandx-zlib.rb @@ -0,0 +1,55 @@ +# +# Copyright 2021 YOUR NAME +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# These options are required for all software definitions +name "spandx-zlib" +default_version "1.2.6" + +# A software can specify more than one version that is available for install +version("1.2.6") { source md5: "618e944d7c7cd6521551e30b32322f4a" } +version("1.2.8") { source md5: "44d667c142d7cda120332623eab69f40" } + +# Sources may be URLs, git locations, or path locations +source url: "http://downloads.sourceforge.net/project/libpng/zlib/#{version}/zlib-#{version}.tar.gz" + +# This is the path, inside the tarball, where the source resides +relative_path "zlib-#{version}" + +build do + # Setup a default environment from Omnibus - you should use this Omnibus + # helper everywhere. It will become the default in the future. + env = with_standard_compiler_flags(with_embedded_path) + + # Manipulate any configure flags you wish: + # For some reason zlib needs this flag on solaris + env["CFLAGS"] << " -DNO_VIZ" if solaris? + + # "command" is part of the build DSL. There are a number of handy options + # available, such as "copy", "sync", "ruby", etc. For a complete list, please + # consult the Omnibus gem documentation. + # + # "install_dir" is exposed and refers to the top-level projects +install_dir+ + command "./configure" \ + " --prefix=#{install_dir}/embedded", env: env + + # You can have multiple steps - they are executed in the order in which they + # are read. + # + # "workers" is a DSL method that returns the most suitable number of + # builders for the currently running system. + command "make -j #{workers}", env: env + command "make -j #{workers} install", env: env +end diff --git a/omnibus.rb b/omnibus.rb new file mode 100644 index 0000000..b9d3d13 --- /dev/null +++ b/omnibus.rb @@ -0,0 +1,55 @@ +# +# This file is used to configure the spandx project. It contains +# some minimal configuration examples for working with Omnibus. For a full list +# of configurable options, please see the documentation for +omnibus/config.rb+. +# + +# Build internally +# ------------------------------ +# By default, Omnibus uses system folders (like +/var+ and +/opt+) to build and +# cache components. If you would to build everything internally, you can +# uncomment the following options. This will prevent the need for root +# permissions in most cases. +# +# Uncomment this line to change the default base directory to "local" +# ------------------------------------------------------------------- +# base_dir './local' +# +# Alternatively you can tune the individual values +# ------------------------------------------------ +# cache_dir './local/omnibus/cache' +# git_cache_dir './local/omnibus/cache/git_cache' +# source_dir './local/omnibus/src' +# build_dir './local/omnibus/build' +# package_dir './local/omnibus/pkg' +# package_tmp './local/omnibus/pkg-tmp' + +# Disable git caching +# ------------------------------ +# use_git_caching false + +# Enable S3 asset caching +# ------------------------------ +# use_s3_caching true +# s3_access_key ENV['AWS_ACCESS_KEY_ID'] +# s3_secret_key ENV['AWS_SECRET_ACCESS_KEY'] +# s3_profile ENV['AWS_S3_PROFILE'] +# s3_iam_role_arn ENV['S3_IAM_ROLE_ARN'] +# s3_bucket ENV['AWS_S3_BUCKET'] + +# Customize compiler bits +# ------------------------------ +# solaris_compiler 'gcc' +# build_retries 5 +# fetcher_read_timeout 120 +# fetcher_retries 5 + +# Load additional software +# ------------------------------ +# software_gems ['omnibus-software', 'my-company-software'] +# local_software_dirs ['/path/to/local/software'] + +# Windows architecture defaults +# ------------------------------ +windows_arch %w{x86 x64}.include?((ENV['OMNIBUS_WINDOWS_ARCH'] || '').downcase) ? + ENV['OMNIBUS_WINDOWS_ARCH'].downcase.to_sym : :x86 diff --git a/package-scripts/spandx/postinst b/package-scripts/spandx/postinst new file mode 100755 index 0000000..8699861 --- /dev/null +++ b/package-scripts/spandx/postinst @@ -0,0 +1,17 @@ +#!/bin/sh +# +# Perform necessary spandx setup steps +# after package is installed. +# + +PROGNAME=`basename $0` + +error_exit() +{ + echo "${PROGNAME}: ${1:-"Unknown Error"}" 1>&2 + exit 1 +} + +echo "Thank you for installing spandx!" + +exit 0 diff --git a/package-scripts/spandx/postrm b/package-scripts/spandx/postrm new file mode 100755 index 0000000..698b0b0 --- /dev/null +++ b/package-scripts/spandx/postrm @@ -0,0 +1,9 @@ +#!/bin/sh +# +# Perform necessary spandx removal steps +# after package is uninstalled. +# + +echo "spandx has been uninstalled!" + +exit 0 diff --git a/package-scripts/spandx/preinst b/package-scripts/spandx/preinst new file mode 100755 index 0000000..8a0ea38 --- /dev/null +++ b/package-scripts/spandx/preinst @@ -0,0 +1,7 @@ +#!/bin/sh +# +# Perform necessary spandx setup steps +# before package is installed. +# + +echo "You're about to install spandx!" diff --git a/package-scripts/spandx/prerm b/package-scripts/spandx/prerm new file mode 100755 index 0000000..9f40287 --- /dev/null +++ b/package-scripts/spandx/prerm @@ -0,0 +1,15 @@ +#!/bin/sh +# +# Perform necessary spandx setup steps +# prior to installing package. +# + +PROGNAME=`basename $0` + +error_exit() +{ + echo "${PROGNAME}: ${1:-"Unknown Error"}" 1>&2 + exit 1 +} + +exit 0 diff --git a/resources/spandx/pkg/background.png b/resources/spandx/pkg/background.png Binary files differnew file mode 100644 index 0000000..cf3e062 --- /dev/null +++ b/resources/spandx/pkg/background.png diff --git a/resources/spandx/pkg/distribution.xml.erb b/resources/spandx/pkg/distribution.xml.erb new file mode 100644 index 0000000..d56d817 --- /dev/null +++ b/resources/spandx/pkg/distribution.xml.erb @@ -0,0 +1,22 @@ +<?xml version="1.0" standalone="no"?> +<installer-gui-script minSpecVersion="1"> + <title><%= friendly_name %></title> + <background file="background.png" alignment="bottomleft" mime-type="image/png"/> + <welcome file="welcome.html" mime-type="text/html"/> + <license file="license.html" mime-type="text/html"/> + + <!-- Generated by productbuild - - synthesize --> + <pkg-ref id="<%= identifier %>"/> + <options customize="never" require-scripts="false"/> + <choices-outline> + <line choice="default"> + <line choice="<%= identifier %>"/> + </line> + </choices-outline> + <choice id="default"/> + <choice id="<%= identifier %>" visible="false"> + <pkg-ref id="<%= identifier %>"/> + </choice> + <pkg-ref id="<%= identifier %>" version="<%= version %>" onConclusion="none"><%= component_pkg %></pkg-ref> + <domains enable_anywhere="false" enable_currentUserHome="false" enable_localSystem="true" /> +</installer-gui-script> diff --git a/resources/spandx/pkg/license.html.erb b/resources/spandx/pkg/license.html.erb new file mode 100644 index 0000000..d9ae912 --- /dev/null +++ b/resources/spandx/pkg/license.html.erb @@ -0,0 +1,3 @@ +All Rights Reserved + +This is a generic Omnibus license file for <%= friendly_name %>. If you are building Mac OS X packages, you should generate a custom license file and description to suit your needs. diff --git a/resources/spandx/pkg/welcome.html.erb b/resources/spandx/pkg/welcome.html.erb new file mode 100644 index 0000000..9b1d15d --- /dev/null +++ b/resources/spandx/pkg/welcome.html.erb @@ -0,0 +1,7 @@ +This will install <%= friendly_name %> on your Mac. + +-------------------------------------------------- + +This is a generic Omnibus welcome message. If you are building Mac OS X packages, you should generate a custom welcome file to suit your needs. + +If you are not the creator of <%= friendly_name %>, the presence of this message is likely a bug and should be reported to the creator. |
