├── .buildkite └── hooks │ └── pre-command ├── .expeditor ├── Version_inspector │ ├── README.md │ ├── SW-Version-update.py │ ├── manual_prod_list.json │ ├── prod_default_version.json │ ├── prod_list.json │ ├── requirements.txt │ ├── update_prod_default_version.sh │ └── update_prod_list.sh ├── config.yml ├── determine_version.sh ├── push_git_tag.sh ├── run_linux_tests.sh ├── software_upload.pipeline.yml └── verify.pipeline.yml ├── .github ├── CODEOWNERS ├── ISSUE_TEMPLATE │ ├── BUG_TEMPLATE.md │ ├── DESIGN_PROPOSAL.md │ ├── ENHANCEMENT_REQUEST_TEMPLATE.md │ └── SUPPORT_QUESTION.md ├── dependabot.yml └── lock.yml ├── .gitignore ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── Dockerfile ├── Gemfile ├── LICENSE ├── README.md ├── Rakefile ├── VERSION ├── config ├── patches │ ├── bash │ │ ├── race-condition.patch │ │ └── updated_race-condition.patch │ ├── bzip2 │ │ ├── aix_makefile.patch │ │ ├── makefile_no_bins.patch │ │ ├── makefile_take_env_vars.patch │ │ └── soname_install_dir.patch │ ├── curl │ │ ├── curl-aix-disable-alpn.patch │ │ └── curl-freebsd-hostcheck.patch │ ├── erlang │ │ ├── epmd-require-explicitly-adding-loopback-address.patch │ │ └── updated-epmd-require-explicitly-adding-loopback-address.patch │ ├── expat │ │ ├── configure_xlc_visibility.patch │ │ └── configure_xlc_visibility_2.4.7.patch │ ├── figlet │ │ └── aix-figlet-cdefs.patch │ ├── gdbm │ │ └── v1.8.3-Makefile.in.patch │ ├── git │ │ └── aix-endian-fix.patch │ ├── gtar │ │ └── aix_extra_case.patch │ ├── keepalived │ │ └── keepalived-1.2.9_opscode_centos_5.patch │ ├── keydb │ │ └── remove-libatomic-dep │ ├── libedit │ │ ├── freebsd-vi-fix.patch │ │ ├── openbsd-weak-alias-fix.patch │ │ └── solaris.patch │ ├── libffi │ │ ├── libffi-3.2.1-disable-multi-os-directory.patch │ │ └── libffi-3.3-arm64.patch │ ├── libxslt │ │ ├── libxslt-solaris-configure.patch │ │ ├── libxslt-windows-relocate.patch │ │ └── update-libxslt-solaris-configure.patch │ ├── libyaml │ │ └── windows-configure.patch │ ├── libzmq │ │ ├── zeromq-4.0.11_mingw_inet_pton.patch │ │ ├── zeromq-aix-4.2.2-LARGE_FILES.patch │ │ └── zeromq-aix-4.2.2-atomic-counter-fetch_and_add.patch │ ├── logrotate │ │ └── logrotate_basedir_override.patch │ ├── m4 │ │ └── m4-1.4.18-glibc-change-work-around.patch │ ├── make │ │ └── deb-make-glob.patch │ ├── ncurses │ │ ├── ncurses-5.9-gcc-5.patch │ │ ├── ncurses-5.9-solaris-xopen_source_extended-detection.patch │ │ ├── ncurses-clang.patch │ │ ├── patch-aa │ │ ├── patch-ab │ │ ├── patch-ac │ │ ├── patch-ad │ │ ├── patch-cxx_cursesf.h │ │ ├── patch-cxx_cursesm.h │ │ └── patch-ncurses_tinfo_lib__baudrate.c │ ├── openssl-fips │ │ └── openssl-fips-fix-compiler-flags-table-for-msys.patch │ ├── openssl │ │ ├── openssl-1.0.1f-do-not-build-docs.patch │ │ ├── openssl-1.0.1j-windows-relocate-dll.patch │ │ ├── openssl-1.0.1q-fix-compiler-flags-table-for-msys.patch │ │ ├── openssl-1.0.2x-darwin-arm64.patch │ │ ├── openssl-1.1.0f-do-not-install-docs.patch │ │ ├── openssl-3.0.0-enable-legacy-provider.patch │ │ ├── openssl-3.0.1-do-not-install-docs.patch │ │ └── openssl-3.2.4-do-not-install-docs.patch │ ├── perl │ │ ├── perl-5.18.1-remove_lnsl.patch │ │ ├── perl-5.22.1-remove_lnsl.patch │ │ ├── perl-5.30.0-remove_lnsl.patch │ │ ├── perl-5.32.1-remove_lnsl.patch │ │ └── perl-5.34.0-remove_lnsl.patch │ ├── pkg-config │ │ └── openbsd-charset.patch │ ├── popt │ │ └── v1.16.ppc64le-configure.patch │ ├── redis │ │ └── password-from-environment.patch │ ├── ruby │ │ ├── patch-configure │ │ ├── remove_nano.patch │ │ ├── ruby-2.6.7_c99.patch │ │ ├── ruby-3.0.1-configure.patch │ │ ├── ruby-3.0.2-configure.patch │ │ ├── ruby-3.0.3-freebsd_13.patch │ │ ├── ruby-3.0.5-configure.patch │ │ ├── ruby-3.1.4-configure.patch │ │ ├── ruby-3.1.6-configure.patch │ │ ├── ruby-aix-atomic.patch │ │ ├── ruby-aix-configure_26_and_later.patch │ │ ├── ruby-aix-vm-core.patch │ │ ├── ruby-fast-load_26.patch │ │ ├── ruby-fast-load_31.patch │ │ ├── ruby-faster-load_26.patch │ │ ├── ruby-faster-load_27.patch │ │ ├── ruby-faster-load_33.patch │ │ ├── ruby-mkmf.patch │ │ ├── ruby-no-stack-protector-strong.patch │ │ ├── ruby-no-stack-protector.patch │ │ ├── ruby-win32_registry.patch │ │ ├── ruby-win32_resolv.patch │ │ ├── ruby-win32_warning_removal.patch │ │ ├── ruby_aix_openssl.patch │ │ ├── ruby_aix_ssl_EAGAIN.patch │ │ └── rvm-cflags.patch │ ├── stunnel │ │ ├── stunnel-on-windows-new.patch │ │ └── stunnel-on-windows.patch │ └── zlib │ │ └── zlib-windows-relocate.patch ├── software │ ├── autoconf.rb │ ├── automake.rb │ ├── bash.rb │ ├── berkshelf-no-depselector.rb │ ├── berkshelf.rb │ ├── binutils.rb │ ├── bundler.rb │ ├── bzip2.rb │ ├── cacerts.rb │ ├── chef-gem.rb │ ├── chef.rb │ ├── cmake.rb │ ├── config_guess.rb │ ├── cpanminus.rb │ ├── curl.rb │ ├── delivery-cli.rb │ ├── dep-selector-libgecode.rb │ ├── elasticsearch.rb │ ├── elixir.rb │ ├── erlang.rb │ ├── expat.rb │ ├── fakeroot.rb │ ├── ffi-yajl.rb │ ├── figlet-fonts.rb │ ├── figlet.rb │ ├── gcc.rb │ ├── gdbm.rb │ ├── gecode.rb │ ├── gem-permissions.rb │ ├── git-windows.rb │ ├── git.rb │ ├── gmp.rb │ ├── go-uninstall.rb │ ├── go.rb │ ├── google-protobuf.rb │ ├── gtar.rb │ ├── help2man.rb │ ├── highline-gem.rb │ ├── ibm-jre.rb │ ├── inspec.rb │ ├── jre-from-jdk.rb │ ├── keepalived.rb │ ├── keydb.rb │ ├── libarchive.rb │ ├── libedit.rb │ ├── libffi.rb │ ├── libgcc.rb │ ├── libiconv.rb │ ├── libintl-perl.rb │ ├── liblzma.rb │ ├── libnghttp2.rb │ ├── libossp-uuid.rb │ ├── libsodium.rb │ ├── libtool.rb │ ├── libuuid.rb │ ├── libxcrypt.rb │ ├── libxml2.rb │ ├── libxslt.rb │ ├── libyajl2-gem.rb │ ├── libyaml.rb │ ├── libzmq.rb │ ├── logrotate.rb │ ├── lua.rb │ ├── m4.rb │ ├── make.rb │ ├── makedepend.rb │ ├── mpc.rb │ ├── mpfr.rb │ ├── musl.rb │ ├── mysql2.rb │ ├── ncurses.rb │ ├── nginx.rb │ ├── nodejs-binary.rb │ ├── nodejs.rb │ ├── nokogiri.rb │ ├── omnibus-ctl.rb │ ├── openresty.rb │ ├── opensearch.rb │ ├── openssl-customization.rb │ ├── openssl-fips.rb │ ├── openssl.rb │ ├── patch.rb │ ├── patchelf.rb │ ├── pcre.rb │ ├── perl-extutils-embed.rb │ ├── perl-extutils-makemaker.rb │ ├── perl-thread-queue.rb │ ├── perl.rb │ ├── perl_pg_driver.rb │ ├── pg-gem.rb │ ├── pkg-config-lite.rb │ ├── pkg-config.rb │ ├── popt.rb │ ├── postgresql.rb │ ├── preparation.rb │ ├── python.rb │ ├── rabbitmq.rb │ ├── rb-readline.rb │ ├── rbnacl-libsodium.rb │ ├── rbzmq.rb │ ├── rebar.rb │ ├── redis-gem.rb │ ├── redis.rb │ ├── relx.rb │ ├── rsync.rb │ ├── ruby-cleanup.rb │ ├── ruby-msys2-devkit.rb │ ├── ruby-windows-devkit-bash.rb │ ├── ruby-windows-devkit.rb │ ├── ruby.rb │ ├── rubygems.rb │ ├── runit.rb │ ├── rust-uninstall.rb │ ├── rust.rb │ ├── sequel-gem.rb │ ├── server-jre.rb │ ├── server-open-jre.rb │ ├── setuptools.rb │ ├── shebang-cleanup.rb │ ├── sqitch.rb │ ├── stunnel.rb │ ├── util-macros.rb │ ├── version-manifest.rb │ ├── xproto.rb │ └── zlib.rb └── templates │ ├── git │ └── config.mak.erb │ ├── rubygems │ └── register_devtools.rb.erb │ └── runit │ └── runsvdir-start.erb ├── docker-compose.yml ├── lib ├── omnibus-software.rb └── omnibus-software │ └── version.rb ├── omnibus-software.gemspec ├── scripts ├── internal_sources.rb └── internal_sources.yml └── test ├── Gemfile ├── config └── projects │ └── test.rb ├── generate_steps.rb ├── omnibus-build.sh └── omnibus.rb /.buildkite/hooks/pre-command: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -eu 4 | 5 | if [[ $BUILDKITE_ORGANIZATION_SLUG != "chef-oss" ]]; then 6 | export VAULT_ADDR="https://vault.ps.chef.co" 7 | export VAULT_TOKEN=$(vault login -method=aws -path=aws/private-cd -token-only header_value=vault.ps.chef.co role=ci) 8 | export ARTIFACTORY_PASSWORD=$(vault kv get -field password account/static/artifactory/buildkite) 9 | fi -------------------------------------------------------------------------------- /.expeditor/Version_inspector/README.md: -------------------------------------------------------------------------------- 1 | # Version Inspector 2 | python based utility software that can be used to find the latest version information for the omnibus-software packages . 3 | 4 | ## Execute the below command to install the dependencies. 5 | $pip3 install -r requirements.txt 6 | 7 | ## SW-Version-update.py 8 | python script to get the latest version of products. 9 | command to run the script 10 | $python3 SW-Version-update.py [json] 11 | Pass 'json' as CLA for json o/p 12 | 1. checks latest version for all the products and lists the product, default version and latest version with url 13 | 2. checks for latset version for a particular product 14 | 3. List the products that needs to be checked for latest version manually 15 | 16 | ## update_prod_default_version.sh 17 | rebase your branch with main to get the latest updated version updates and execute this script, which generates update_prod_default_version.json 18 | ## update_prod_list.sh 19 | Not necessary to run all the time. ALl the product are upto date. Dont run this script until unless it is required. This script generates prod_list.json. 20 | ## manual_prod_list.json 21 | contains the list of products that needs to be checked for latest version manually. 22 | -------------------------------------------------------------------------------- /.expeditor/Version_inspector/manual_prod_list.json: -------------------------------------------------------------------------------- 1 | { 2 | "cacerts": { 3 | "url": "https://curl.se/ca/" 4 | }, 5 | "cpanminus": { 6 | "url": "https://metacpan.org/pod/App::cpanminus#Downloading-the-standalone-executable" 7 | }, 8 | "elasticsearch": { 9 | "url": "https://www.elastic.co/downloads/" 10 | }, 11 | "go": { 12 | "url": "https://go.dev/dl/" 13 | }, 14 | "ruby": { 15 | "url": "https://cache.ruby-lang.org/pub/ruby/" 16 | }, 17 | "opensearch": { 18 | 19 | "url": "https://opensearch.org/docs/latest/version-history/" 20 | }, 21 | "popt": { 22 | "url": "https://github.com/rpm-software-management/popt/releases/" 23 | }, 24 | "sqitch": { 25 | 26 | "url": "https://github.com/sqitchers/sqitch/releases" 27 | } 28 | } 29 | 30 | -------------------------------------------------------------------------------- /.expeditor/Version_inspector/requirements.txt: -------------------------------------------------------------------------------- 1 | requests 2 | bs4 3 | packaging 4 | email 5 | -------------------------------------------------------------------------------- /.expeditor/Version_inspector/update_prod_default_version.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #To update the product_default_version 4 | #cd omnibus-software/config/software 5 | #sh update_prod_default_version.sh 6 | 7 | Prod_file="prod_default_version.json" 8 | cd ../../config/software/ 9 | rm -rf $Prod_file 10 | echo "{" >> $Prod_file 11 | for FILE in *.rb; do 12 | prod=$(echo "$FILE" |cut -d "." -f1); 13 | dv=$( grep "default_version" $FILE| cut -d " " -f2) 14 | if [ "$prod" = "cacerts" ]; then 15 | echo "\"$prod\": $dv ,">> $Prod_file; 16 | else 17 | if echo $dv | grep -qE '[0-9]\.[0-9]+' ;then 18 | echo "\"$prod\": $dv ,">> $Prod_file; 19 | fi 20 | fi 21 | done; 22 | $(printf '%s\n' '$' 's/.$//' wq | ex $Prod_file) 23 | echo "}" >> $Prod_file 24 | mv $Prod_file ../../.expeditor/Version_Inspector/ 25 | -------------------------------------------------------------------------------- /.expeditor/Version_inspector/update_prod_list.sh: -------------------------------------------------------------------------------- 1 | #to update the prod_list.json 2 | #cd omnibus-software/config/software 3 | #sh update_prod_list.sh 4 | 5 | prod_file="prod_list.json" 6 | cd ../../config/software/ 7 | rm $prod_file 8 | echo "{" >>$prod_file 9 | for FILE in *.rb; do 10 | if ! grep -q deprecated $FILE ; then 11 | echo "File name is :$FILE" 12 | prod=$(echo "$FILE" |cut -d "." -f1); 13 | dv=$( grep "default_version" $FILE| cut -d " " -f2) 14 | if echo $dv | grep -qE '[0-9]\.[0-9]+' ;then 15 | url=$(grep "https" $FILE | grep tar | tail -1 | cut -d ":" -f2 -f3 | cut -d "-" -f1) 16 | if [ ! -z "$url" ];then 17 | echo "\"$prod\": {" >> $prod_file; 18 | url1=$(dirname $url) 19 | echo "\"url\": $url1\"," >> $prod_file ; 20 | if [ $prod == "openssl-fips" ] || [ $prod == "postgresql" ] ;then 21 | expr1="^v\\\\\d[\\\\\.\\\\\d]*\\\\\d" 22 | echo $expr1 23 | else 24 | expr1="^($prod-)\\\\\d[\\\\\.\\\\\d]*\\\\\d(\\\\\.tar\\\\\.gz)$" 25 | echo "EXPR=$expr1" 26 | fi 27 | echo "\"expr\": \"$expr1\"">>$prod_file 28 | echo "},">>$prod_file 29 | fi 30 | fi 31 | fi 32 | done; 33 | $(printf '%s\n' '$' 's/.$//' wq | ex $prod_file) 34 | echo "}" >>$prod_file 35 | #mv $prod_file ../../.expeditor/Version_Inspector/ 36 | -------------------------------------------------------------------------------- /.expeditor/config.yml: -------------------------------------------------------------------------------- 1 | # Documentation available at https://expeditor.chef.io/docs/getting-started/ 2 | --- 3 | 4 | # Slack channel in Chef Software slack to send notifications about build failures, etc 5 | slack: 6 | notify_channel: chef-found-notify 7 | 8 | # This publish is triggered by the `built_in:publish_rubygems` artifact_action. 9 | rubygems: 10 | - omnibus-software 11 | 12 | github: 13 | # This deletes the GitHub PR branch after successfully merged into the release branch 14 | delete_branch_on_merge: true 15 | pipelines: 16 | - verify: 17 | description: Pull Request validation tests 18 | public: true 19 | - software_upload: 20 | description: Uploads omnibus-software defined in scripts/internal_sources.yml to artifactory 21 | definition: .expeditor/software_upload.pipeline.yml 22 | 23 | rubygems: 24 | - omnibus-software 25 | 26 | subscriptions: 27 | - workload: pull_request_merged:{{github_repo}}:{{release_branch}}:* 28 | actions: 29 | - built_in:bump_version: 30 | ignore_labels: 31 | - "Expeditor: Skip Version Bump" 32 | - "Expeditor: Skip All" 33 | - bash:.expeditor/determine_version.sh: 34 | only_if: built_in:bump_version 35 | ignore_labels: 36 | - "Expeditor: Skip Version Bump" 37 | - "Expeditor: Skip All" 38 | # The git commit happens here 39 | - bash:.expeditor/push_git_tag.sh: 40 | only_if: bash:.expeditor/determine_version.sh 41 | post_commit: true 42 | - trigger_pipeline:software_upload 43 | - built_in:build_gem: 44 | only_if: "bash:.expeditor/push_git_tag.sh" 45 | 46 | - workload: project_promoted:{{agent_id}}:* 47 | actions: 48 | - built_in:rollover_changelog 49 | - built_in:publish_rubygems -------------------------------------------------------------------------------- /.expeditor/determine_version.sh: -------------------------------------------------------------------------------- 1 | 2 | #!/bin/bash 3 | 4 | # This gets run as a pre-commit hook just prior to a merge to 5 | # determine the new version number. 6 | 7 | # Leading zeros are not permitted in strict SemVer 8 | YEAR=`date +"%y" | sed -e 's/^0//'` # Must be < 256 per Microsoft 9 | MONTH=`date +"%m" | sed -e 's/^0//'` 10 | 11 | OLD_BUILD=`cut -f3 -d. < VERSION` 12 | 13 | NEW_BUILD=$(($OLD_BUILD + 1)) # Monotonically increase the build number 14 | 15 | echo $YEAR.$MONTH.$NEW_BUILD > VERSION -------------------------------------------------------------------------------- /.expeditor/push_git_tag.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # This gets run as a post-commit hook after merge to add the version tag so it 4 | # is easy to determine what changes are in a particular build. 5 | # 6 | # https://expeditor.chef.io/docs/reference/action-filters/#post-commit 7 | 8 | 9 | VERSION=`cat VERSION` 10 | 11 | git tag $VERSION 12 | git push origin $VERSION -------------------------------------------------------------------------------- /.expeditor/run_linux_tests.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # This script runs a passed in command, but first setups up the bundler caching on the repo 4 | 5 | set -ue 6 | 7 | export USER="root" 8 | export LANG=C.UTF-8 LANGUAGE=C.UTF-8 9 | 10 | echo "--- bundle install" 11 | 12 | bundle config --local path vendor/bundle 13 | bundle install --jobs=7 --retry=3 14 | 15 | echo "+++ bundle exec task" 16 | bundle exec $@ 17 | -------------------------------------------------------------------------------- /.expeditor/software_upload.pipeline.yml: -------------------------------------------------------------------------------- 1 | --- 2 | steps: 3 | - label: ":file_folder: upload software to internal sources" 4 | agents: 5 | queue: default 6 | plugins: 7 | - docker#v3.5.0: 8 | image: chefes/omnibus-toolchain-ubuntu-2204-x86 9 | shell: 10 | - "/bin/bash" 11 | - "-e" 12 | - "-c" 13 | propagate-environment: true 14 | commands: 15 | - export PATH=/opt/omnibus-toolchain/bin/:/app/bin:/usr/local/bundle/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 16 | && ./scripts/internal_sources.rb ./scripts/internal_sources.yml 17 | timeout_in_minutes: 20 -------------------------------------------------------------------------------- /.expeditor/verify.pipeline.yml: -------------------------------------------------------------------------------- 1 | --- 2 | expeditor: 3 | cached_folders: 4 | - vendor 5 | defaults: 6 | buildkite: 7 | retry: 8 | automatic: 9 | limit: 1 10 | timeout_in_minutes: 30 11 | 12 | steps: 13 | 14 | - label: run-lint-and-specs-ruby-3.1 15 | command: 16 | - .expeditor/run_linux_tests.sh rake 17 | 18 | expeditor: 19 | executor: 20 | docker: 21 | image: ruby:3.1-buster 22 | 23 | - label: ":pipeline: generate-test-build-steps" 24 | command: expeditor buildkite trigger-pipeline test/generate_steps.rb 25 | agents: 26 | queue: pipeline-trigger 27 | plugins: 28 | - docker#v3.5.0: 29 | image: "$EXPEDITOR_TRIGGER_IMAGE_NAME:$EXPEDITOR_TRIGGER_IMAGE_VERSION" 30 | propagate-environment: true 31 | network: host 32 | environment: 33 | - AWS_ACCOUNT_ID 34 | - AWS_REGION 35 | -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | # Order is important. The last matching pattern has the most precedence. 2 | 3 | * @chef/chef-infra-reviewers @chef/chef-infra-approvers @chef/chef-infra-owners @chef/chef-infra-server-reviewers @chef/chef-infra-server-approvers @chef/chef-infra-server-owners @chef/infra-packages 4 | .expeditor/ @chef/jex-team @chef/infra-packages 5 | *.md @chef/docs-team 6 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/BUG_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: � Bug Report 3 | about: If something isn't working as expected �. 4 | labels: "Status: Untriaged" 5 | --- 6 | 7 | # Version: 8 | 9 | [Version of the project installed] 10 | 11 | # Environment: 12 | 13 | [Details about the environment such as the Operating System, cookbook details, etc...] 14 | 15 | # Scenario: 16 | 17 | [What you are trying to achieve and you can't?] 18 | 19 | # Steps to Reproduce: 20 | 21 | [If you are filing an issue what are the things we need to do in order to repro your problem?] 22 | 23 | # Expected Result: 24 | 25 | [What are you expecting to happen as the consequence of above reproduction steps?] 26 | 27 | # Actual Result: 28 | 29 | [What actually happens after the reproduction steps?] 30 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/DESIGN_PROPOSAL.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Design Proposal 3 | about: I have a significant change I would like to propose and discuss before starting 4 | labels: "Status: Untriaged" 5 | --- 6 | 7 | ### When a Change Needs a Design Proposal 8 | 9 | A design proposal should be opened any time a change meets one of the following qualifications: 10 | 11 | - Significantly changes the user experience of a project in a way that impacts users. 12 | - Significantly changes the underlying architecture of the project in a way that impacts other developers. 13 | - Changes the development or testing process of the project such as a change of CI systems or test frameworks. 14 | 15 | ### Why We Use This Process 16 | 17 | - Allows all interested parties (including any community member) to discuss large impact changes to a project. 18 | - Serves as a durable paper trail for discussions regarding project architecture. 19 | - Forces design discussions to occur before PRs are created. 20 | - Reduces PR refactoring and rejected PRs. 21 | 22 | --- 23 | 24 | 25 | 26 | ## Motivation 27 | 28 | 33 | 34 | ## Specification 35 | 36 | 37 | 38 | ## Downstream Impact 39 | 40 | 41 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/ENHANCEMENT_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 🚀 Enhancement Request 3 | about: I have a suggestion (and may want to implement it 🙂)! 4 | labels: "Status: Untriaged" 5 | --- 6 | 7 | ### Describe the Enhancement: 8 | 9 | 10 | ### Describe the Need: 11 | 12 | 13 | ### Current Alternative 14 | 15 | 16 | ### Can We Help You Implement This?: 17 | 18 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/SUPPORT_QUESTION.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 🤗 Support Question 3 | about: If you have a question 💬, please check out our Slack! 4 | --- 5 | 6 | We use GitHub issues to track bugs and feature requests. If you need help please post to our Mailing List or join the Chef Community Slack. 7 | 8 | * Chef Community Slack at https://community-slack.chef.io/. 9 | * Chef Mailing List https://discourse.chef.io/ 10 | 11 | Support issues opened here will be closed and redirected to Slack or Discourse. 12 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: bundler 4 | directory: "/" 5 | schedule: 6 | interval: daily 7 | time: "06:00" 8 | timezone: America/Los_Angeles 9 | open-pull-requests-limit: 10 10 | -------------------------------------------------------------------------------- /.github/lock.yml: -------------------------------------------------------------------------------- 1 | daysUntilLock: 60 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.gem 2 | .bundle 3 | Gemfile.lock 4 | vendor 5 | pkg/* 6 | test/pkg/* 7 | /binstubs 8 | /bin 9 | 10 | # avoid generic ctags files 11 | tags 12 | gems.tags 13 | gemtags 14 | .tags 15 | .gem.tags 16 | .gemtags 17 | .tags_sorted_by_file 18 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | 4 | 5 | 6 | 7 | 8 | ### Changes since 23.7.295 release 9 | 10 | 11 | 12 | ## [23.7.295](https://github.com/chef/omnibus-software/tree/23.7.295) (2023-08-18) 13 | 14 | 15 | ## [23.6.292](https://github.com/chef/omnibus-software/tree/23.6.292) (2023-06-14) 16 | 17 | ## [23.6.291](https://github.com/chef/omnibus-software/tree/23.6.291) (2023-06-05) 18 | 19 | ## [23.2.283](https://github.com/chef/omnibus-software/tree/23.2.283) (2023-02-20) 20 | 21 | ## [23.2.281](https://github.com/chef/omnibus-software/tree/23.2.281) (2023-02-06) 22 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | Please refer to the Chef Community Code of Conduct at https://www.chef.io/code-of-conduct/ 2 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | Please refer to https://github.com/chef/chef/blob/main/CONTRIBUTING.md 2 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:18.04 2 | 3 | RUN apt-get update -y -q && apt-get install -y \ 4 | autoconf \ 5 | binutils \ 6 | binutils-doc \ 7 | bison \ 8 | build-essential \ 9 | curl \ 10 | devscripts \ 11 | dpkg-dev \ 12 | fakeroot \ 13 | flex \ 14 | gettext \ 15 | gnupg \ 16 | ncurses-dev \ 17 | ncurses-dev \ 18 | wget \ 19 | zlib1g-dev 20 | 21 | RUN curl -L https://omnitruck.chef.io/install.sh | bash -s -- -P omnibus-toolchain 22 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source "https://rubygems.org" 2 | gemspec 3 | 4 | group :development, :test do 5 | gem "omnibus", git: "https://github.com/chef/omnibus", branch: "main" 6 | gem "highline" 7 | gem "rake" 8 | gem "chefstyle" 9 | gem "ohai" 10 | end 11 | -------------------------------------------------------------------------------- /Rakefile: -------------------------------------------------------------------------------- 1 | require "bundler/gem_tasks" 2 | require "omnibus-software" 3 | 4 | task :test do 5 | OmnibusSoftware.verify! 6 | end 7 | 8 | task :fetch do 9 | rake_fakeout 10 | software_name = ARGV[1] 11 | path = ARGV[2] || "." 12 | puts "Downloading #{software_name} to #{path}" 13 | OmnibusSoftware.fetch(software_name, path) 14 | end 15 | 16 | task :fetch_all do 17 | rake_fakeout 18 | path = ARGV[1] || "." 19 | puts "Downloading all software to #{path}" 20 | OmnibusSoftware.fetch_all(path) 21 | end 22 | 23 | task :test_build do 24 | rake_fakeout 25 | software = ARGV[1] 26 | version = ARGV[2] || "default" 27 | 28 | raise "\nERROR: You must specify a software name\n\n" if software.nil? 29 | 30 | command = "docker-compose run --rm -e CI=true -e SOFTWARE=#{software}" 31 | command += " -e VERSION=#{version}" unless version == "default" 32 | command += " builder" 33 | 34 | sh command 35 | end 36 | 37 | def rake_fakeout 38 | ARGV.each { |a| task a.to_sym {} } # rubocop: disable Lint/AmbiguousBlockAssociation 39 | end 40 | 41 | task :list do 42 | OmnibusSoftware.list 43 | end 44 | 45 | begin 46 | require "chefstyle" 47 | require "rubocop/rake_task" 48 | desc "Run Chefstyle tests" 49 | RuboCop::RakeTask.new(:style) do |task| 50 | task.options += ["--display-cop-names", "--no-color"] 51 | end 52 | rescue LoadError 53 | puts "chefstyle gem is not installed. bundle install first to make sure all dependencies are installed." 54 | end 55 | 56 | task default: %w{style test} 57 | -------------------------------------------------------------------------------- /VERSION: -------------------------------------------------------------------------------- 1 | 24.6.324 2 | -------------------------------------------------------------------------------- /config/patches/bash/race-condition.patch: -------------------------------------------------------------------------------- 1 | bashline.c:65:10: fatal error: builtins/builtext.h: No such file or directory 2 | 65 | #include "builtins/builtext.h" /* for read_builtin */ 3 | | ^~~~~~~~~~~~~~~~~~~~~ 4 | 5 | --- bash-5.1/Makefile.in 6 | +++ bash-5.1/Makefile.in 7 | @@ -584,6 +584,8 @@ 8 | ls -l $(Program) 9 | -$(SIZE) $(Program) 10 | 11 | +$(CSOURCES): $(DEFDIR)/builtext.h 12 | + 13 | .build: $(SOURCES) config.h Makefile version.h $(VERSPROG) 14 | @echo 15 | @echo " ***********************************************************" 16 | -------------------------------------------------------------------------------- /config/patches/bash/updated_race-condition.patch: -------------------------------------------------------------------------------- 1 | bashline.c:65:10: fatal error: builtins/builtext.h: No such file or directory 2 | 65 | #include "builtins/builtext.h" /* for read_builtin */ 3 | | ^~~~~~~~~~~~~~~~~~~~~ 4 | 5 | --- Makefile.in.org 2022-11-10 11:15:31.000000000 +0530 6 | +++ Makefile.in 2022-11-10 13:31:23.000000000 +0530 7 | @@ -596,6 +596,8 @@ 8 | ls -l $(Program) 9 | -$(SIZE) $(Program) 10 | 11 | +$(CSOURCES): $(DEFDIR)/builtext.h 12 | + 13 | .build: $(SOURCES) config.h Makefile $(DEFDIR)/builtext.h version.h $(VERSPROG) 14 | @echo 15 | @echo " ***********************************************************" 16 | -------------------------------------------------------------------------------- /config/patches/bzip2/aix_makefile.patch: -------------------------------------------------------------------------------- 1 | --- bzip2-1.0.8/Makefile-libbz2_so.orig 2019-07-24 10:33:36.184131389 -0400 2 | +++ bzip2-1.0.8/Makefile-libbz2_so 2019-07-24 10:35:20.564277676 -0400 3 | @@ -35,7 +35,7 @@ 4 | bzlib.o 5 | 6 | all: $(OBJS) 7 | - $(CC) -shared -Wl,-soname -Wl,libbz2.so.1.0 -o libbz2.so.1.0.8 $(OBJS) 8 | + $(CC) -qmkshrobj -Wl,-soname -o libbz2.so.1.0.8 $(OBJS) 9 | $(CC) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.so.1.0.8 10 | rm -f libbz2.so.1.0 11 | ln -s libbz2.so.1.0.8 libbz2.so.1.0 12 | -------------------------------------------------------------------------------- /config/patches/bzip2/makefile_take_env_vars.patch: -------------------------------------------------------------------------------- 1 | --- bzip2-1.0.6/Makefile-orig 2010-09-10 17:46:02.000000000 -0500 2 | +++ bzip2-1.0.6/Makefile 2013-11-21 13:55:11.000000000 -0600 3 | @@ -15,13 +15,13 @@ 4 | 5 | SHELL=/bin/sh 6 | 7 | # To assist in cross-compiling 8 | -CC=gcc 9 | +CC?=gcc 10 | AR=ar 11 | RANLIB=ranlib 12 | -LDFLAGS= 13 | +LDFLAGS+= 14 | 15 | -BIGFILES=-D_FILE_OFFSET_BITS=64 16 | +BIGFILES?=-D_FILE_OFFSET_BITS=64 17 | -CFLAGS=-Wall -Winline -O2 -g $(BIGFILES) 18 | +CFLAGS+=-Wall -Winline -O2 -g $(BIGFILES) 19 | 20 | # Where you want it installed when you do 'make install' 21 | PREFIX=/usr/local 22 | --- bzip2-1.0.6/Makefile-libbz2_so-orig 2017-03-21 19:43:16.706849481 +0000 23 | +++ bzip2-1.0.6/Makefile-libbz2_so 2017-03-21 19:43:01.187851955 +0000 24 | @@ -22,7 +22,7 @@ 25 | 26 | 27 | SHELL=/bin/sh 28 | -CC=gcc 29 | +CC?=gcc 30 | BIGFILES=-D_FILE_OFFSET_BITS=64 31 | CFLAGS=-fpic -fPIC -Wall -Winline -O2 -g $(BIGFILES) 32 | -------------------------------------------------------------------------------- /config/patches/bzip2/soname_install_dir.patch: -------------------------------------------------------------------------------- 1 | --- bzip2-1.0.8/Makefile-libbz2_so.orig 2019-07-24 10:33:36.184131389 -0400 2 | +++ bzip2-1.0.8/Makefile-libbz2_so 2019-07-24 10:38:15.700843785 -0400 3 | @@ -35,7 +35,7 @@ 4 | bzlib.o 5 | 6 | all: $(OBJS) 7 | - $(CC) -shared -Wl,-soname -Wl,libbz2.so.1.0 -o libbz2.so.1.0.8 $(OBJS) 8 | + $(CC) -shared -Wl,-install_name -Wl,libbz2.so.1.0 -o libbz2.so.1.0.8 $(OBJS) 9 | $(CC) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.so.1.0.8 10 | rm -f libbz2.so.1.0 11 | ln -s libbz2.so.1.0.8 libbz2.so.1.0 12 | -------------------------------------------------------------------------------- /config/patches/curl/curl-aix-disable-alpn.patch: -------------------------------------------------------------------------------- 1 | *** lib/vtls/schannel.c.orig Thu Mar 30 23:13:48 2017 2 | --- lib/vtls/schannel.c Thu Mar 30 23:13:54 2017 3 | *************** 4 | *** 48,49 **** 5 | --- 48,53 ---- 6 | 7 | + #if defined(_AIX) 8 | + # define HAS_ALPN 0 9 | + #endif 10 | + 11 | #include "curl_sspi.h" 12 | *** lib/vtls/openssl.c.orig Thu Mar 30 23:20:11 2017 13 | --- lib/vtls/openssl.c Thu Mar 30 23:33:55 2017 14 | *************** 15 | *** 1594,1596 **** 16 | #if OPENSSL_VERSION_NUMBER >= 0x10002000L \ 17 | ! && !defined(OPENSSL_NO_TLSEXT) 18 | # define HAS_ALPN 1 19 | --- 1594,1596 ---- 20 | #if OPENSSL_VERSION_NUMBER >= 0x10002000L \ 21 | ! && !defined(OPENSSL_NO_TLSEXT) && !(_AIX) 22 | # define HAS_ALPN 1 23 | -------------------------------------------------------------------------------- /config/patches/curl/curl-freebsd-hostcheck.patch: -------------------------------------------------------------------------------- 1 | --- curl-7.36.0/lib/hostcheck.h.orig 2015-06-08 20:57:05.000000000 +0000 2 | +++ curl-7.36.0/lib/hostcheck.h 2015-06-08 20:57:29.000000000 +0000 3 | @@ -23,6 +23,7 @@ 4 | ***************************************************************************/ 5 | 6 | #include 7 | +#include 8 | 9 | #define CURL_HOST_NOMATCH 0 10 | #define CURL_HOST_MATCH 1 11 | -------------------------------------------------------------------------------- /config/patches/figlet/aix-figlet-cdefs.patch: -------------------------------------------------------------------------------- 1 | diff -uarNp /tmp/figlet-2.2.5/Makefile Makefile 2 | --- /tmp/figlet-2.2.5/Makefile 2012-06-01 07:20:17.000000000 -0500 3 | +++ Makefile 2015-05-28 14:23:16.000000000 -0500 4 | @@ -18,18 +18,12 @@ 5 | # for changing this is if sh is not in the same place. 6 | SHELL = /bin/sh 7 | 8 | -# The C compiler and linker to use 9 | -CC = gcc 10 | -CFLAGS = -g -O2 -Wall 11 | -LD = gcc 12 | -LDFLAGS = 13 | - 14 | # Feature flags: 15 | # define TLF_FONTS to use TOIlet TLF fonts 16 | XCFLAGS = -DTLF_FONTS 17 | 18 | # Where to install files 19 | -prefix = /usr/local 20 | +prefix ?= /usr/local 21 | 22 | # Where the executables should be put 23 | BINDIR = $(prefix)/bin 24 | diff -uarNp /tmp/figlet-2.2.5/figlet.c figlet.c 25 | --- /tmp/figlet-2.2.5/figlet.c 2012-06-01 07:20:17.000000000 -0500 26 | +++ figlet.c 2015-05-28 13:47:04.000000000 -0500 27 | @@ -703,7 +703,7 @@ char *suffix; 28 | int namelen; 29 | 30 | namelen = MYSTRLEN(fontdirname); 31 | - fontpath = (char*)alloca(sizeof(char)* 32 | + fontpath = (char*)malloc(sizeof(char)* 33 | (namelen+MYSTRLEN(name)+MYSTRLEN(suffix)+2)); 34 | fontfile = NULL; 35 | if (!hasdirsep(name)) { /* not a full path name */ 36 | diff -uarNp /tmp/figlet-2.2.5/utf8.h utf8.h 37 | --- /tmp/figlet-2.2.5/utf8.h 2012-06-01 07:20:17.000000000 -0500 38 | +++ utf8.h 2015-05-28 13:47:04.000000000 -0500 39 | @@ -13,7 +13,8 @@ 40 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 41 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 42 | */ 43 | - 44 | + # define __BEGIN_DECLS 45 | + # define __END_DECLS 46 | /* 47 | * utf8: implementation of UTF-8 charset encoding (RFC3629). 48 | */ 49 | -------------------------------------------------------------------------------- /config/patches/gdbm/v1.8.3-Makefile.in.patch: -------------------------------------------------------------------------------- 1 | --- Makefile.in~ 2015-10-07 12:24:16.000000000 -0700 2 | +++ Makefile.in 2015-10-07 12:25:50.000000000 -0700 3 | @@ -130,22 +130,22 @@ 4 | $(srcdir)/mkinstalldirs $(INSTALL_ROOT)$(libdir) \ 5 | $(INSTALL_ROOT)$(includedir) $(INSTALL_ROOT)$(man3dir) \ 6 | $(INSTALL_ROOT)$(infodir) 7 | - $(LIBTOOL) $(INSTALL) -c libgdbm.la $(INSTALL_ROOT)$(libdir)/libgdbm.la 8 | - $(INSTALL_DATA) -o $(BINOWN) -g $(BINGRP) gdbm.h \ 9 | + $(LIBTOOL) cp libgdbm.la $(INSTALL_ROOT)$(libdir)/libgdbm.la 10 | + cp gdbm.h \ 11 | $(INSTALL_ROOT)$(includedir)/gdbm.h 12 | - $(INSTALL_DATA) -o $(BINOWN) -g $(BINGRP) $(srcdir)/gdbm.3 \ 13 | + cp $(srcdir)/gdbm.3 \ 14 | $(INSTALL_ROOT)$(man3dir)/gdbm.3 15 | - $(INSTALL_DATA) -o $(BINOWN) -g $(BINGRP) $(srcdir)/gdbm.info \ 16 | + cp $(srcdir)/gdbm.info \ 17 | $(INSTALL_ROOT)$(infodir)/gdbm.info 18 | 19 | install-compat: 20 | $(srcdir)/mkinstalldirs $(INSTALL_ROOT)$(libdir) \ 21 | $(INSTALL_ROOT)$(includedir) 22 | - $(LIBTOOL) $(INSTALL) -c libgdbm_compat.la \ 23 | + $(LIBTOOL) cp libgdbm_compat.la \ 24 | $(INSTALL_ROOT)$(libdir)/libgdbm_compat.la 25 | - $(INSTALL_DATA) -o $(BINOWN) -g $(BINGRP) $(srcdir)/dbm.h \ 26 | + cp $(srcdir)/dbm.h \ 27 | $(INSTALL_ROOT)$(includedir)/dbm.h 28 | - $(INSTALL_DATA) -o $(BINOWN) -g $(BINGRP) $(srcdir)/ndbm.h \ 29 | + cp $(srcdir)/ndbm.h \ 30 | $(INSTALL_ROOT)$(includedir)/ndbm.h 31 | 32 | #libgdbm.a: $(OBJS) gdbm.h 33 | -------------------------------------------------------------------------------- /config/patches/git/aix-endian-fix.patch: -------------------------------------------------------------------------------- 1 | *** sha1dc/sha1.c_orig Wed Dec 6 00:18:55 2017 2 | --- sha1dc/sha1.c Wed Dec 6 00:17:57 2017 3 | *************** 4 | *** 69,74 **** 5 | --- 69,83 ---- 6 | #define SHA1DC_BIGENDIAN 7 | #endif 8 | 9 | + /* Not under GCC-alike */ 10 | + #elif defined(BYTE_ORDER) && defined(BIG_ENDIAN) 11 | + /* 12 | + * AIX doesn't use _ for constants so we're looking for these 13 | + */ 14 | + #if BYTE_ORDER == BIG_ENDIAN 15 | + #define SHA1DC_BIGENDIAN 16 | + #endif 17 | + 18 | /* Not under GCC-alike or glibc */ 19 | #elif defined(_BYTE_ORDER) && defined(_BIG_ENDIAN) && defined(_LITTLE_ENDIAN) 20 | /* -------------------------------------------------------------------------------- /config/patches/gtar/aix_extra_case.patch: -------------------------------------------------------------------------------- 1 | *** src/unlink.c Thu Apr 5 18:33:48 2018 2 | --- src/unlink.c.new Thu Apr 5 18:33:48 2018 3 | *************** 4 | *** 124,132 **** 5 | case ENOENT: 6 | /* nothing to worry about */ 7 | break; 8 | - case EEXIST: 9 | - /* OpenSolaris >=10 sets EEXIST instead of ENOTEMPTY 10 | - if trying to remove a non-empty directory */ 11 | case ENOTEMPTY: 12 | /* Keep the record in list, in the hope we'll 13 | be able to remove it later */ 14 | -------------------------------------------------------------------------------- /config/patches/keepalived/keepalived-1.2.9_opscode_centos_5.patch: -------------------------------------------------------------------------------- 1 | diff --git keepalived-1.2.9/vrrp/vrrp_ipaddress.c keepalived-1.2.9_centos5/vrrp/vrrp_ipaddress.c 2 | index 130014f..1900327 100644 3 | --- a/keepalived/vrrp/vrrp_ipaddress.c 4 | +++ b/keepalived/vrrp/vrrp_ipaddress.c 5 | @@ -76,7 +76,9 @@ netlink_ipaddress(ip_address_t *ipaddress, int cmd) 6 | * without service. HA/VRRP setups have their own "DAD"-like 7 | * functionality, so it's not really needed from the IPv6 stack. 8 | */ 9 | - req.ifa.ifa_flags |= IFA_F_NODAD; 10 | + #ifdef IFA_F_NODAD 11 | + req.ifa.ifa_flags |= IFA_F_NODAD; 12 | + #endif 13 | 14 | addattr_l(&req.n, sizeof(req), IFA_LOCAL, 15 | &ipaddress->u.sin6_addr, sizeof(ipaddress->u.sin6_addr)); 16 | -------------------------------------------------------------------------------- /config/patches/keydb/remove-libatomic-dep: -------------------------------------------------------------------------------- 1 | --- KeyDB-6.3.4-original/src/Makefile 2024-08-23 16:20:47.182590590 -0400 2 | +++ KeyDB-6.3.4/src/Makefile 2024-08-23 16:21:13.045995002 -0400 3 | @@ -144,16 +144,6 @@ 4 | FINAL_LDFLAGS=$(LDFLAGS) $(KEYDB_LDFLAGS) $(DEBUG) 5 | FINAL_LIBS+=-lm -lz -lcrypto 6 | 7 | -ifneq ($(uname_S),Darwin) 8 | - ifneq ($(uname_S),FreeBSD) 9 | - FINAL_LIBS+=-latomic 10 | - endif 11 | -endif 12 | -# Linux ARM32 needs -latomic at linking time 13 | -ifneq (,$(findstring armv,$(uname_M))) 14 | - FINAL_LIBS+=-latomic 15 | -endif 16 | - 17 | 18 | ifeq ($(uname_S),SunOS) 19 | # SunOS 20 | -------------------------------------------------------------------------------- /config/patches/libedit/freebsd-vi-fix.patch: -------------------------------------------------------------------------------- 1 | diff -ruN libedit-20120601-3.0/src/vi.c libedit-20120601-3.0.fixed/src/vi.c 2 | --- libedit-20120601-3.0/src/vi.c 2012-03-11 09:54:58.000000000 +0000 3 | +++ libedit-20120601-3.0.fixed/src/vi.c 2013-02-08 05:22:16.338954507 +0000 4 | @@ -918,17 +918,15 @@ 5 | * NB: posix implies that we should enter insert mode, however 6 | * this is against historical precedent... 7 | */ 8 | -#ifdef __weak_reference 9 | -__weakref_visible char *my_get_alias_text(const char *) 10 | - __weak_reference(get_alias_text); 11 | -#endif 12 | protected el_action_t 13 | /*ARGSUSED*/ 14 | vi_alias(EditLine *el, Int c __attribute__((__unused__))) 15 | { 16 | -#ifdef __weak_reference 17 | +#ifdef __weak_extern 18 | char alias_name[3]; 19 | char *alias_text; 20 | + extern __weakref_visible char *my_get_alias_text(const char *); 21 | + __weak_extern(get_alias_text); 22 | 23 | if (my_get_alias_text == 0) { 24 | return CC_ERROR; 25 | -------------------------------------------------------------------------------- /config/patches/libedit/openbsd-weak-alias-fix.patch: -------------------------------------------------------------------------------- 1 | diff -ur libedit-20120601-3.0.orig/src/strlcat.c libedit-20120601-3.0/src/strlcat.c 2 | --- libedit-20120601-3.0.orig/src/strlcat.c Wed May 13 17:47:58 2015 3 | +++ libedit-20120601-3.0/src/strlcat.c Wed May 13 17:48:14 2015 4 | @@ -29,7 +29,7 @@ 5 | 6 | #ifdef _LIBC 7 | # ifdef __weak_alias 8 | -__weak_alias(strlcat, _strlcat) 9 | +//__weak_alias(strlcat, _strlcat) 10 | # endif 11 | #endif 12 | 13 | diff -ur libedit-20120601-3.0.orig/src/strlcpy.c libedit-20120601-3.0/src/strlcpy.c 14 | --- libedit-20120601-3.0.orig/src/strlcpy.c Wed May 13 17:47:58 2015 15 | +++ libedit-20120601-3.0/src/strlcpy.c Wed May 13 17:48:14 2015 16 | @@ -29,7 +29,7 @@ 17 | 18 | #ifdef _LIBC 19 | # ifdef __weak_alias 20 | -__weak_alias(strlcpy, _strlcpy) 21 | +//__weak_alias(strlcpy, _strlcpy) 22 | # endif 23 | #endif 24 | 25 | diff -ur libedit-20120601-3.0.orig/src/unvis.c libedit-20120601-3.0/src/unvis.c 26 | --- libedit-20120601-3.0.orig/src/unvis.c Wed May 13 17:47:58 2015 27 | +++ libedit-20120601-3.0/src/unvis.c Wed May 13 17:48:14 2015 28 | @@ -50,7 +50,7 @@ 29 | #include 30 | 31 | #ifdef __weak_alias 32 | -__weak_alias(strnunvisx,_strnunvisx) 33 | +//__weak_alias(strnunvisx,_strnunvisx) 34 | #endif 35 | 36 | #if !HAVE_VIS 37 | diff -ur libedit-20120601-3.0.orig/src/vis.c libedit-20120601-3.0/src/vis.c 38 | --- libedit-20120601-3.0.orig/src/vis.c Wed May 13 17:47:58 2015 39 | +++ libedit-20120601-3.0/src/vis.c Wed May 13 17:48:14 2015 40 | @@ -69,7 +69,7 @@ 41 | #include 42 | 43 | #ifdef __weak_alias 44 | -__weak_alias(strvisx,_strvisx) 45 | +//__weak_alias(strvisx,_strvisx) 46 | #endif 47 | 48 | #if !HAVE_VIS || !HAVE_SVIS 49 | -------------------------------------------------------------------------------- /config/patches/libedit/solaris.patch: -------------------------------------------------------------------------------- 1 | diff -ur libedit-20120601-3.0.orig/src/sys.h libedit-20120601-3.0/src/sys.h 2 | --- libedit-20120601-3.0.orig/src/sys.h 2022-05-18 07:01:46.000000000 -0400 3 | +++ libedit-20120601-3.0/src/sys-new.h 2022-05-18 07:01:30.000000000 -0400 4 | @@ -132,11 +132,11 @@ 5 | 6 | #if defined(__sun) 7 | extern int tgetent(char *, const char *); 8 | -extern int tgetflag(char *); 9 | -extern int tgetnum(char *); 10 | +extern int tgetflag(const char *); 11 | +extern int tgetnum(const char *); 12 | extern int tputs(const char *, int, int (*)(int)); 13 | extern char* tgoto(const char*, int, int); 14 | -extern char* tgetstr(char*, char**); 15 | +extern char* tgetstr(const char*, char**); 16 | #endif 17 | 18 | #endif /* _h_sys */ 19 | diff -ur libedit-20120601-3.0.orig/src/terminal.h libedit-20120601-3.0/src/terminal.h 20 | --- libedit-20120601-3.0.orig/src/terminal.h 2022-05-18 07:02:46.000000000 -0400 21 | +++ libedit-20120601-3.0/src/terminal.h 2022-05-18 07:02:30.000000000 -0400 22 | @@ -84,11 +84,11 @@ 23 | 24 | #ifdef __sun 25 | extern int tgetent(char *, const char *); 26 | -extern int tgetflag(char *); 27 | -extern int tgetnum(char *); 28 | +extern int tgetflag(const char *); 29 | +extern int tgetnum(const char *); 30 | extern int tputs(const char *, int, int (*)(int)); 31 | extern char* tgoto(const char*, int, int); 32 | -extern char* tgetstr(char*, char**); 33 | +extern char* tgetstr(const char*, char**); 34 | #endif 35 | 36 | protected void terminal_move_to_line(EditLine *, int); -------------------------------------------------------------------------------- /config/patches/libxslt/libxslt-solaris-configure.patch: -------------------------------------------------------------------------------- 1 | --- libxslt-1.1.28/configure.in 2016-01-19 13:45:52.000000000 -0800 2 | +++ libxslt-1.1.28/configure 2016-01-19 13:46:11.000000000 -0800 3 | @@ -12849,11 +12849,11 @@ 4 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to pass version script to the linker ($LD)" >&5 5 | $as_echo_n "checking how to pass version script to the linker ($LD)... " >&6; } 6 | VERSION_SCRIPT_FLAGS=none 7 | -if $LD --help 2>&1 | grep "version-script" >/dev/null 2>/dev/null; then 8 | - VERSION_SCRIPT_FLAGS=-Wl,--version-script= 9 | -elif $LD --help 2>&1 | grep "M mapfile" >/dev/null 2>/dev/null; then 10 | - VERSION_SCRIPT_FLAGS="-Wl,-M -Wl," 11 | -fi 12 | +#if $LD --help 2>&1 | grep "version-script" >/dev/null 2>/dev/null; then 13 | +# VERSION_SCRIPT_FLAGS=-Wl,--version-script= 14 | +#elif $LD --help 2>&1 | grep "M mapfile" >/dev/null 2>/dev/null; then 15 | +# VERSION_SCRIPT_FLAGS="-Wl,-M -Wl," 16 | +#fi 17 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $VERSION_SCRIPT_FLAGS" >&5 18 | $as_echo "$VERSION_SCRIPT_FLAGS" >&6; } 19 | 20 | -------------------------------------------------------------------------------- /config/patches/libxslt/libxslt-windows-relocate.patch: -------------------------------------------------------------------------------- 1 | --- libxslt-1.1.30/libxslt/Makefile.in.orig 2017-10-25 14:23:01.000000000 +0100 2 | +++ libxslt-1.1.30/libxslt/Makefile.in 2017-10-25 14:29:06.000000000 +0100 3 | @@ -457,7 +457,8 @@ 4 | libxslt_la_LDFLAGS = \ 5 | $(WIN32_EXTRA_LDFLAGS) \ 6 | $(LIBXSLT_VERSION_SCRIPT) \ 7 | - -version-info $(LIBXSLT_VERSION_INFO) 8 | + -version-info $(LIBXSLT_VERSION_INFO) \ 9 | + -Wl,--image-base,0x6d780000 10 | 11 | man_MANS = libxslt.3 12 | EXTRA_DIST = $(man_MANS) trio.h triodef.h libxslt.syms 13 | -------------------------------------------------------------------------------- /config/patches/libyaml/windows-configure.patch: -------------------------------------------------------------------------------- 1 | diff --git a/include/yaml.h b/include/yaml.h 2 | index 5a04d36..70d839e 100644 3 | --- a/include/yaml.h 4 | +++ b/include/yaml.h 5 | @@ -29,7 +29,7 @@ extern "C" { 6 | #ifdef _WIN32 7 | # if defined(YAML_DECLARE_STATIC) 8 | # define YAML_DECLARE(type) type 9 | -# elif defined(YAML_DECLARE_EXPORT) 10 | +# elif defined(YAML_DECLARE_EXPORT) || defined(DLL_EXPORT) 11 | # define YAML_DECLARE(type) __declspec(dllexport) type 12 | # else 13 | # define YAML_DECLARE(type) __declspec(dllimport) type 14 | diff --git a/src/Makefile b/src/Makefile 15 | index b72224d..a413ce0 100644 16 | --- a/src/Makefile 17 | +++ b/src/Makefile 18 | @@ -219,7 +219,7 @@ top_srcdir = .. 19 | AM_CPPFLAGS = -I$(top_srcdir)/include 20 | lib_LTLIBRARIES = libyaml.la 21 | libyaml_la_SOURCES = yaml_private.h api.c reader.c scanner.c parser.c loader.c writer.c emitter.c dumper.c 22 | -libyaml_la_LDFLAGS = -release $(YAML_LT_RELEASE) -version-info $(YAML_LT_CURRENT):$(YAML_LT_REVISION):$(YAML_LT_AGE) 23 | +libyaml_la_LDFLAGS = -release $(YAML_LT_RELEASE) -version-info $(YAML_LT_CURRENT):$(YAML_LT_REVISION):$(YAML_LT_AGE) -no-undefined 24 | all: all-am 25 | 26 | .SUFFIXES: 27 | -------------------------------------------------------------------------------- /config/patches/libzmq/zeromq-4.0.11_mingw_inet_pton.patch: -------------------------------------------------------------------------------- 1 | --- a/tests/test_security_curve.cpp 2 | +++ b/tests/test_security_curve.cpp 3 | @@ -235,7 +235,7 @@ int main (void) 4 | 5 | ip4addr.sin_family = AF_INET; 6 | ip4addr.sin_port = htons (9998); 7 | - inet_pton (AF_INET, "127.0.0.1", &ip4addr.sin_addr); 8 | + ip4addr.sin_addr.s_addr = inet_addr ("127.0.0.1"); 9 | 10 | s = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP); 11 | rc = connect (s, (struct sockaddr*) &ip4addr, sizeof (ip4addr)); 12 | diff --git a/tests/test_security_null.cpp b/tests/test_security_null.cpp 13 | index 6b74e8c..9b87aa3 100644 14 | --- a/tests/test_security_null.cpp 15 | +++ b/tests/test_security_null.cpp 16 | @@ -148,7 +148,7 @@ int main (void) 17 | 18 | ip4addr.sin_family = AF_INET; 19 | ip4addr.sin_port = htons(9003); 20 | - inet_pton(AF_INET, "127.0.0.1", &ip4addr.sin_addr); 21 | + ip4addr.sin_addr.s_addr = inet_addr ("127.0.0.1"); 22 | 23 | s = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP); 24 | rc = connect (s, (struct sockaddr*) &ip4addr, sizeof ip4addr); 25 | diff --git a/tests/test_security_plain.cpp b/tests/test_security_plain.cpp 26 | index c257840..cd66790 100644 27 | --- a/tests/test_security_plain.cpp 28 | +++ b/tests/test_security_plain.cpp 29 | @@ -154,7 +154,7 @@ int main (void) 30 | 31 | ip4addr.sin_family = AF_INET; 32 | ip4addr.sin_port = htons (9998); 33 | - inet_pton (AF_INET, "127.0.0.1", &ip4addr.sin_addr); 34 | + ip4addr.sin_addr.s_addr = inet_addr ("127.0.0.1"); 35 | 36 | s = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP); 37 | rc = connect (s, (struct sockaddr*) &ip4addr, sizeof (ip4addr)); 38 | -------------------------------------------------------------------------------- /config/patches/libzmq/zeromq-aix-4.2.2-LARGE_FILES.patch: -------------------------------------------------------------------------------- 1 | *** src/tcp_connecter.cpp Sat Feb 18 18:05:37 2017 2 | --- src/tcp_connecter.cpp Thu Dec 14 20:51:26 2017 3 | *************** 4 | *** 183,189 **** 5 | void zmq::tcp_connecter_t::start_connecting () 6 | { 7 | // Open the connecting socket. 8 | ! const int rc = open (); 9 | 10 | // Connect may succeed in synchronous manner. 11 | if (rc == 0) { 12 | --- 183,189 ---- 13 | void zmq::tcp_connecter_t::start_connecting () 14 | { 15 | // Open the connecting socket. 16 | ! const int rc = openn (); 17 | 18 | // Connect may succeed in synchronous manner. 19 | if (rc == 0) { 20 | *************** 21 | *** 244,250 **** 22 | return interval; 23 | } 24 | 25 | ! int zmq::tcp_connecter_t::open () 26 | { 27 | zmq_assert (s == retired_fd); 28 | 29 | --- 244,250 ---- 30 | return interval; 31 | } 32 | 33 | ! int zmq::tcp_connecter_t::openn () 34 | { 35 | zmq_assert (s == retired_fd); 36 | 37 | *** src/tcp_connecter.hpp Sat Feb 18 18:05:37 2017 38 | --- src/tcp_connecter.hpp Thu Dec 14 20:50:40 2017 39 | *************** 40 | *** 84,90 **** 41 | // Open TCP connecting socket. Returns -1 in case of error, 42 | // 0 if connect was successful immediately. Returns -1 with 43 | // EAGAIN errno if async connect was launched. 44 | ! int open (); 45 | 46 | // Close the connecting socket. 47 | void close (); 48 | --- 84,90 ---- 49 | // Open TCP connecting socket. Returns -1 in case of error, 50 | // 0 if connect was successful immediately. Returns -1 with 51 | // EAGAIN errno if async connect was launched. 52 | ! int openn (); 53 | 54 | // Close the connecting socket. 55 | void close (); 56 | 57 | -------------------------------------------------------------------------------- /config/patches/libzmq/zeromq-aix-4.2.2-atomic-counter-fetch_and_add.patch: -------------------------------------------------------------------------------- 1 | *** src/atomic_counter.hpp Sat Feb 18 18:05:37 2017 2 | --- src/atomic_counter.hpp Thu Dec 14 20:54:51 2017 3 | *************** 4 | *** 46,51 **** 5 | --- 46,53 ---- 6 | #define ZMQ_ATOMIC_COUNTER_WINDOWS 7 | #elif (defined ZMQ_HAVE_SOLARIS || defined ZMQ_HAVE_NETBSD || defined ZMQ_HAVE_GNU) 8 | #define ZMQ_ATOMIC_COUNTER_ATOMIC_H 9 | + #elif defined ZMQ_HAVE_AIX 10 | + #define ZMQ_ATOMIC_COUNTER_AIX 11 | #elif defined __tile__ 12 | #define ZMQ_ATOMIC_COUNTER_TILE 13 | #else 14 | *************** 15 | *** 60,65 **** 16 | --- 62,69 ---- 17 | #include "windows.hpp" 18 | #elif defined ZMQ_ATOMIC_COUNTER_ATOMIC_H 19 | #include 20 | + #elif defined ZMQ_ATOMIC_COUNTER_AIX 21 | + #include 22 | #elif defined ZMQ_ATOMIC_COUNTER_TILE 23 | #include 24 | #endif 25 | *************** 26 | *** 105,110 **** 27 | --- 109,116 ---- 28 | #elif defined ZMQ_ATOMIC_COUNTER_ATOMIC_H 29 | integer_t new_value = atomic_add_32_nv (&value, increment_); 30 | old_value = new_value - increment_; 31 | + #elif defined ZMQ_ATOMIC_COUNTER_AIX 32 | + old_value = fetch_and_add ((atomic_p) &value, increment_); 33 | #elif defined ZMQ_ATOMIC_COUNTER_TILE 34 | old_value = arch_atomic_add (&value, increment_); 35 | #elif defined ZMQ_ATOMIC_COUNTER_X86 36 | *************** 37 | *** 154,159 **** 38 | --- 160,169 ---- 39 | int32_t delta = - ((int32_t) decrement); 40 | integer_t nv = atomic_add_32_nv (&value, delta); 41 | return nv != 0; 42 | + #elif defined ZMQ_ATOMIC_COUNTER_AIX 43 | + int32_t delta = - ((int32_t) decrement); 44 | + integer_t old = fetch_and_add((atomic_p) &value, delta); 45 | + return old - decrement != 0; 46 | #elif defined ZMQ_ATOMIC_COUNTER_TILE 47 | int32_t delta = - ((int32_t) decrement); 48 | integer_t nv = arch_atomic_add (&value, delta); 49 | *************** 50 | *** 224,229 **** 51 | --- 234,240 ---- 52 | #undef ZMQ_ATOMIC_COUNTER_ARM 53 | #undef ZMQ_ATOMIC_COUNTER_WINDOWS 54 | #undef ZMQ_ATOMIC_COUNTER_ATOMIC_H 55 | + #undef ZMQ_ATOMIC_COUNTER_AIX 56 | #undef ZMQ_ATOMIC_COUNTER_TILE 57 | 58 | #endif 59 | 60 | -------------------------------------------------------------------------------- /config/patches/logrotate/logrotate_basedir_override.patch: -------------------------------------------------------------------------------- 1 | --- Makefile 2014-05-05 17:45:06.000000000 -0400 2 | +++ Makefile 2014-05-05 17:47:03.000000000 -0400 3 | @@ -1,3 +1,5 @@ 4 | +BASEDIR ?= 5 | + 6 | VERSION = $(shell awk '/Version:/ { print $$2 }' logrotate.spec) 7 | OS_NAME = $(shell uname -s) 8 | LFS = $(shell echo `getconf LFS_CFLAGS 2>/dev/null`) 9 | @@ -64,7 +66,7 @@ 10 | # Red Hat Linux 11 | ifeq ($(OS_NAME),Linux) 12 | INSTALL = install 13 | - BASEDIR = /usr 14 | + BASEDIR ?= /usr 15 | endif 16 | 17 | # FreeBSD 18 | -------------------------------------------------------------------------------- /config/patches/make/deb-make-glob.patch: -------------------------------------------------------------------------------- 1 | --- make-4.2.1/glob/glob.c.ori 2019-10-17 23:06:07.841511314 +1100 2 | +++ make-4.2.1/glob/glob.c 2019-10-17 23:06:21.249541600 +1100 3 | @@ -208,28 +208,9 @@ 4 | #endif /* __GNU_LIBRARY__ || __DJGPP__ */ 5 | 6 | 7 | -#if !defined __alloca && !defined __GNU_LIBRARY__ 8 | - 9 | -# ifdef __GNUC__ 10 | -# undef alloca 11 | -# define alloca(n) __builtin_alloca (n) 12 | -# else /* Not GCC. */ 13 | -# ifdef HAVE_ALLOCA_H 14 | # include 15 | -# else /* Not HAVE_ALLOCA_H. */ 16 | -# ifndef _AIX 17 | -# ifdef WINDOWS32 18 | -# include 19 | -# else 20 | -extern char *alloca (); 21 | -# endif /* WINDOWS32 */ 22 | -# endif /* Not _AIX. */ 23 | -# endif /* sparc or HAVE_ALLOCA_H. */ 24 | -# endif /* GCC. */ 25 | - 26 | # define __alloca alloca 27 | 28 | -#endif 29 | 30 | #ifndef __GNU_LIBRARY__ 31 | # define __stat stat 32 | -------------------------------------------------------------------------------- /config/patches/ncurses/ncurses-5.9-gcc-5.patch: -------------------------------------------------------------------------------- 1 | https://bugs.gentoo.org/545114 2 | 3 | extracted from the upstream change (which had many unrelated commits in one) 4 | 5 | From 97bb4678dc03e753290b39bbff30ba2825df9517 Mon Sep 17 00:00:00 2001 6 | From: "Thomas E. Dickey" 7 | Date: Sun, 7 Dec 2014 03:10:09 +0000 8 | Subject: [PATCH] ncurses 5.9 - patch 20141206 9 | 10 | + modify MKlib_gen.sh to work around change in development version of 11 | gcc introduced here: 12 | https://gcc.gnu.org/ml/gcc-patches/2014-06/msg02185.html 13 | https://gcc.gnu.org/ml/gcc-patches/2014-07/msg00236.html 14 | (reports by Marcus Shawcroft, Maohui Lei). 15 | 16 | diff --git a/ncurses/base/MKlib_gen.sh b/ncurses/base/MKlib_gen.sh 17 | index d8cc3c9..b91398c 100755 18 | --- a/ncurses/base/MKlib_gen.sh 19 | +++ b/ncurses/base/MKlib_gen.sh 20 | @@ -474,11 +474,22 @@ sed -n -f $ED1 \ 21 | -e 's/gen_$//' \ 22 | -e 's/ / /g' >>$TMP 23 | 24 | +cat >$ED1 < $ED2 36 | +cat $ED2 >$TMP 37 | + 38 | $preprocessor $TMP 2>/dev/null \ 39 | -| sed \ 40 | - -e 's/ / /g' \ 41 | - -e 's/^ //' \ 42 | - -e 's/_Bool/NCURSES_BOOL/g' \ 43 | +| sed -f $ED1 \ 44 | | $AWK -f $AW2 \ 45 | | sed -f $ED3 \ 46 | | sed \ 47 | -------------------------------------------------------------------------------- /config/patches/ncurses/ncurses-5.9-solaris-xopen_source_extended-detection.patch: -------------------------------------------------------------------------------- 1 | --- configure.after.pkgin.patches 2012-12-17 01:06:16.964187316 +0000 2 | +++ configure 2012-12-17 01:07:17.046932230 +0000 3 | @@ -7864,7 +7864,7 @@ 4 | else 5 | echo "$as_me: failed program was:" >&5 6 | cat conftest.$ac_ext >&5 7 | -cf_result=yes 8 | +cf_result=no 9 | fi 10 | rm -f conftest.$ac_objext conftest.$ac_ext 11 | echo "$as_me:7863: result: $cf_result" >&5 12 | -------------------------------------------------------------------------------- /config/patches/ncurses/ncurses-clang.patch: -------------------------------------------------------------------------------- 1 | diff -ruNp ncurses-5.9.orig/c++/cursesf.h ncurses-5.9/c++/cursesf.h 2 | --- ncurses-5.9.orig/c++/cursesf.h 2005-08-13 21:08:24.000000000 +0300 3 | +++ ncurses-5.9/c++/cursesf.h 2011-04-03 18:29:29.000000000 +0300 4 | @@ -681,7 +681,7 @@ public: 5 | const T* p_UserData = STATIC_CAST(T*)(0), 6 | bool with_frame=FALSE, 7 | bool autoDelete_Fields=FALSE) 8 | - : NCursesForm (Fields, with_frame, autoDelete_Fields) { 9 | + : NCursesForm (&Fields, with_frame, autoDelete_Fields) { 10 | if (form) 11 | set_user (const_cast(p_UserData)); 12 | }; 13 | @@ -694,7 +694,7 @@ public: 14 | const T* p_UserData = STATIC_CAST(T*)(0), 15 | bool with_frame=FALSE, 16 | bool autoDelete_Fields=FALSE) 17 | - : NCursesForm (Fields, nlines, ncols, begin_y, begin_x, 18 | + : NCursesForm (&Fields, nlines, ncols, begin_y, begin_x, 19 | with_frame, autoDelete_Fields) { 20 | if (form) 21 | set_user (const_cast(p_UserData)); 22 | diff -ruNp ncurses-5.9.orig/c++/cursesm.h ncurses-5.9/c++/cursesm.h 23 | --- ncurses-5.9.orig/c++/cursesm.h 2005-08-13 21:10:36.000000000 +0300 24 | +++ ncurses-5.9/c++/cursesm.h 2011-04-03 18:31:42.000000000 +0300 25 | @@ -639,7 +639,7 @@ public: 26 | const T* p_UserData = STATIC_CAST(T*)(0), 27 | bool with_frame=FALSE, 28 | bool autoDelete_Items=FALSE) 29 | - : NCursesMenu (Items, with_frame, autoDelete_Items) { 30 | + : NCursesMenu (&Items, with_frame, autoDelete_Items) { 31 | if (menu) 32 | set_user (const_cast(p_UserData)); 33 | }; 34 | @@ -651,7 +651,7 @@ public: 35 | int begin_x = 0, 36 | const T* p_UserData = STATIC_CAST(T*)(0), 37 | bool with_frame=FALSE) 38 | - : NCursesMenu (Items, nlines, ncols, begin_y, begin_x, with_frame) { 39 | + : NCursesMenu (&Items, nlines, ncols, begin_y, begin_x, with_frame) { 40 | if (menu) 41 | set_user (const_cast(p_UserData)); 42 | }; 43 | 44 | -------------------------------------------------------------------------------- /config/patches/ncurses/patch-aa: -------------------------------------------------------------------------------- 1 | $NetBSD: patch-aa,v 1.16 2011/02/28 11:02:46 adam Exp $ 2 | 3 | --- misc/run_tic.in.orig 2006-10-28 21:43:30.000000000 +0200 4 | +++ misc/run_tic.in 5 | @@ -122,7 +122,7 @@ TICDIR=`echo $TERMINFO | sed -e 's%/shar 6 | # would generate a lot of confusing error messages if we tried to overwrite it. 7 | # We explicitly remove its contents rather than the directory itself, in case 8 | # the directory is actually a symbolic link. 9 | -( test -d "$TERMINFO" && cd $TERMINFO && rm -fr ? 2>/dev/null ) 10 | +#( test -d "$TERMINFO" && cd $TERMINFO && rm -fr ? 2>/dev/null ) 11 | 12 | if test "$ext_funcs" = 1 ; then 13 | cat <&6 33 | 34 | ### Construct the list of include-directories to be generated 35 | 36 | -CPPFLAGS="$CPPFLAGS -I. -I../include" 37 | +CPPFLAGS="-I. -I../include $CPPFLAGS" 38 | if test "$srcdir" != "."; then 39 | CPPFLAGS="$CPPFLAGS -I\${srcdir}/../include" 40 | fi 41 | -------------------------------------------------------------------------------- /config/patches/ncurses/patch-ad: -------------------------------------------------------------------------------- 1 | $NetBSD: patch-ad,v 1.11 2011/02/28 11:02:46 adam Exp $ 2 | 3 | --- c++/Makefile.in.orig 2010-11-27 21:45:27.000000000 +0000 4 | +++ c++/Makefile.in 5 | @@ -167,7 +167,7 @@ LIB_OBJS = \ 6 | 7 | ../lib/$(LIBNAME_LIBTOOL) : $(LIB_OBJS) 8 | cd ../lib && $(LIBTOOL_LINK) $(CXX) $(CXXFLAGS) \ 9 | - -o $(LIBNAME) $(LIB_OBJS:$o=.lo) \ 10 | + -o $(LIBNAME) $(LIB_OBJS:.o=.lo) \ 11 | -rpath $(INSTALL_PREFIX)$(libdir) \ 12 | $(LIBTOOL_VERSION) $(NCURSES_MAJOR):$(NCURSES_MINOR) $(LT_UNDEF) $(SHLIB_LIST) 13 | 14 | -------------------------------------------------------------------------------- /config/patches/ncurses/patch-cxx_cursesf.h: -------------------------------------------------------------------------------- 1 | $NetBSD: patch-cxx_cursesf.h,v 1.1 2011/02/28 11:02:46 adam Exp $ 2 | 3 | --- c++/cursesf.h.orig 2011-02-28 09:23:33.000000000 +0000 4 | +++ c++/cursesf.h 5 | @@ -677,7 +677,7 @@ protected: 6 | } 7 | 8 | public: 9 | - NCursesUserForm (NCursesFormField Fields[], 10 | + NCursesUserForm (NCursesFormField *Fields[], 11 | const T* p_UserData = STATIC_CAST(T*)(0), 12 | bool with_frame=FALSE, 13 | bool autoDelete_Fields=FALSE) 14 | @@ -686,7 +686,7 @@ public: 15 | set_user (const_cast(p_UserData)); 16 | }; 17 | 18 | - NCursesUserForm (NCursesFormField Fields[], 19 | + NCursesUserForm (NCursesFormField *Fields[], 20 | int nlines, 21 | int ncols, 22 | int begin_y = 0, 23 | -------------------------------------------------------------------------------- /config/patches/ncurses/patch-cxx_cursesm.h: -------------------------------------------------------------------------------- 1 | $NetBSD: patch-cxx_cursesm.h,v 1.1 2011/02/28 11:02:46 adam Exp $ 2 | 3 | --- c++/cursesm.h.orig 2011-02-28 09:25:22.000000000 +0000 4 | +++ c++/cursesm.h 5 | @@ -635,7 +635,7 @@ protected: 6 | } 7 | 8 | public: 9 | - NCursesUserMenu (NCursesMenuItem Items[], 10 | + NCursesUserMenu (NCursesMenuItem *Items[], 11 | const T* p_UserData = STATIC_CAST(T*)(0), 12 | bool with_frame=FALSE, 13 | bool autoDelete_Items=FALSE) 14 | @@ -644,7 +644,7 @@ public: 15 | set_user (const_cast(p_UserData)); 16 | }; 17 | 18 | - NCursesUserMenu (NCursesMenuItem Items[], 19 | + NCursesUserMenu (NCursesMenuItem *Items[], 20 | int nlines, 21 | int ncols, 22 | int begin_y = 0, 23 | -------------------------------------------------------------------------------- /config/patches/ncurses/patch-ncurses_tinfo_lib__baudrate.c: -------------------------------------------------------------------------------- 1 | $NetBSD: patch-ncurses_tinfo_lib__baudrate.c,v 1.1 2014/05/11 16:55:17 rodent Exp $ 2 | 3 | sys/ttydev.h doesn't exist in OpenBSD 5.5 4 | 5 | --- ncurses/tinfo/lib_baudrate.c.orig Sun Dec 19 01:50:50 2010 6 | +++ ncurses/tinfo/lib_baudrate.c 7 | @@ -39,7 +39,7 @@ 8 | 9 | #include 10 | #include /* ospeed */ 11 | -#if defined(__FreeBSD__) 12 | +#if defined(__FreeBSD__) || defined(__OpenBSD__) 13 | #include 14 | #endif 15 | 16 | @@ -49,7 +49,7 @@ 17 | * of the indices up to B115200 fit nicely in a 'short', allowing us to retain 18 | * ospeed's type for compatibility. 19 | */ 20 | -#if (defined(__FreeBSD__) && (__FreeBSD_version < 700000)) || defined(__NetBSD__) || defined(__OpenBSD__) 21 | +#if (defined(__FreeBSD__) && (__FreeBSD_version < 700000)) || defined(__NetBSD__) || (defined(__OpenBSD__) && (OpenBSD < 201405)) 22 | #undef B0 23 | #undef B50 24 | #undef B75 25 | -------------------------------------------------------------------------------- /config/patches/openssl-fips/openssl-fips-fix-compiler-flags-table-for-msys.patch: -------------------------------------------------------------------------------- 1 | --- a/Configure 2 | +++ b/Configure 3 | @@ -536,7 +536,7 @@ my %table=( 4 | "BC-32","bcc32::::WIN32::BN_LLONG DES_PTR RC4_INDEX EXPORT_VAR_AS_FN:${no_asm}:win32", 5 | 6 | # MinGW 7 | -"mingw", "gcc:-mno-cygwin -DL_ENDIAN -DWIN32_LEAN_AND_MEAN -fomit-frame-pointer -O3 -march=i486 -Wall::-D_MT:MINGW32:-lws2_32 -lgdi32 -lcrypt32:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts} EXPORT_VAR_AS_FN:${x86_asm}:coff:win32:cygwin-shared:-D_WINDLL -DOPENSSL_USE_APPLINK:-mno-cygwin:.dll.a", 8 | +"mingw", "gcc:-mno-cygwin -DL_ENDIAN -DWIN32_LEAN_AND_MEAN -fomit-frame-pointer -O3 -march=i486 -Wall::-D_MT:MINGW32:-lws2_32 -lgdi32 -lcrypt32:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts} EXPORT_VAR_AS_FN:${x86_asm}:coff:win32:cygwin-shared:-D_WINDLL:-mno-cygwin:.dll.a", 9 | # As for OPENSSL_USE_APPLINK. Applink makes it possible to use .dll 10 | # compiled with one compiler with application compiled with another 11 | # compiler. It's possible to engage Applink support in mingw64 build, 12 | -------------------------------------------------------------------------------- /config/patches/openssl/openssl-1.0.1f-do-not-build-docs.patch: -------------------------------------------------------------------------------- 1 | --- openssl-1.0.1f/Makefile.org.orig 2014-01-08 10:58:40.000000000 -0800 2 | +++ openssl-1.0.1f/Makefile.org 2014-01-08 11:06:29.000000000 -0800 3 | @@ -167,7 +167,7 @@ 4 | 5 | TOP= . 6 | ONEDIRS=out tmp 7 | -EDIRS= times doc bugs util include certs ms shlib mt demos perl sf dep VMS 8 | +EDIRS= times bugs util include certs ms shlib mt demos perl sf dep VMS 9 | WDIRS= windows 10 | LIBS= libcrypto.a libssl.a 11 | SHARED_CRYPTO=libcrypto$(SHLIB_EXT) 12 | @@ -538,7 +538,7 @@ 13 | dist_pem_h: 14 | (cd crypto/pem; $(MAKE) -e $(BUILDENV) pem.h; $(MAKE) clean) 15 | 16 | -install: all install_docs install_sw 17 | +install: all install_sw 18 | 19 | install_sw: 20 | @$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin \ 21 | @@ -603,7 +603,6 @@ 22 | echo 'OpenSSL shared libraries have been installed in:'; \ 23 | echo ' $(INSTALLTOP)'; \ 24 | echo ''; \ 25 | - sed -e '1,/^$$/d' doc/openssl-shared.txt; \ 26 | fi; \ 27 | fi 28 | cp libcrypto.pc $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig 29 | -------------------------------------------------------------------------------- /config/patches/openssl/openssl-1.0.1j-windows-relocate-dll.patch: -------------------------------------------------------------------------------- 1 | diff --git a/Makefile.shared b/Makefile.shared 2 | index e8d222a..f723803 100644 3 | --- a/Makefile.shared 4 | +++ b/Makefile.shared 5 | @@ -267,6 +267,12 @@ link_o.cygwin: 6 | deffile=$(LIBNAME)eay32.def; \ 7 | fi; \ 8 | fi; \ 9 | + if expr $(PLATFORM) : 'mingw64' > /dev/null; then \ 10 | + SHLIB=$(LIBNAME)eay32; base=; \ 11 | + if test -f $(LIBNAME)eay32.def; then \ 12 | + deffile=$(LIBNAME)eay32.def; \ 13 | + fi; \ 14 | + fi; \ 15 | SHLIB_SUFFIX=.dll; \ 16 | LIBVERSION="$(LIBVERSION)"; \ 17 | SHLIB_SOVER=${LIBVERSION:+"-$(LIBVERSION)"}; \ 18 | @@ -283,13 +289,23 @@ link_a.cygwin: 19 | base=-Wl,--enable-auto-image-base; \ 20 | if expr $(PLATFORM) : 'mingw' > /dev/null; then \ 21 | case $(LIBNAME) in \ 22 | - crypto) SHLIB=libeay;; \ 23 | - ssl) SHLIB=ssleay;; \ 24 | + crypto) SHLIB=libeay; base=-Wl,--disable-dynamicbase,--image-base,0x64000000;; \ 25 | + ssl) SHLIB=ssleay; base=-Wl,--disable-dynamicbase,--image-base,0x65000000;; \ 26 | + esac; \ 27 | + SHLIB_SOVER=32; \ 28 | + extras="$(LIBNAME).def"; \ 29 | + $(PERL) util/mkdef.pl 32 $$SHLIB > $$extras; \ 30 | + base=; [ $(LIBNAME) = "crypto" -a -n "$(FIPSCANLIB)" ] && base=-Wl,--disable-dynamicbase,--image-base,0x63000000; \ 31 | + fi; \ 32 | + if expr $(PLATFORM) : 'mingw64' > /dev/null; then \ 33 | + case $(LIBNAME) in \ 34 | + crypto) SHLIB=libeay; base=-Wl,--disable-dynamicbase,--image-base,0x64000000;; \ 35 | + ssl) SHLIB=ssleay; base=-Wl,--disable-dynamicbase,--image-base,0x65000000;; \ 36 | esac; \ 37 | SHLIB_SOVER=32; \ 38 | extras="$(LIBNAME).def"; \ 39 | $(PERL) util/mkdef.pl 32 $$SHLIB > $$extras; \ 40 | - base=; [ $(LIBNAME) = "crypto" -a -n "$(FIPSCANLIB)" ] && base=-Wl,--image-base,0x63000000; \ 41 | + base=; [ $(LIBNAME) = "crypto" -a -n "$(FIPSCANLIB)" ] && base=-Wl,--disable-dynamicbase,--image-base,0x63000000; \ 42 | fi; \ 43 | dll_name=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX; \ 44 | $(PERL) util/mkrc.pl $$dll_name | \ 45 | -------------------------------------------------------------------------------- /config/patches/openssl/openssl-1.0.1q-fix-compiler-flags-table-for-msys.patch: -------------------------------------------------------------------------------- 1 | --- openssl-1.0.1q/Configure.orig 2015-12-15 17:47:52.000000000 -0500 2 | +++ openssl-1.0.1q/Configure 2015-12-15 18:31:01.000000000 -0500 3 | @@ -537,7 +537,7 @@ 4 | "BC-32","bcc32::::WIN32::BN_LLONG DES_PTR RC4_INDEX EXPORT_VAR_AS_FN:${no_asm}:win32", 5 | 6 | # MinGW 7 | -"mingw", "gcc:-mno-cygwin -DL_ENDIAN -DWIN32_LEAN_AND_MEAN -fomit-frame-pointer -O3 -march=i486 -Wall::-D_MT:MINGW32:-lws2_32 -lgdi32 -lcrypt32:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts} EXPORT_VAR_AS_FN:${x86_asm}:coff:win32:cygwin-shared:-D_WINDLL -DOPENSSL_USE_APPLINK:-mno-cygwin:.dll.a", 8 | +"mingw", "gcc:-mno-cygwin -DL_ENDIAN -DWIN32_LEAN_AND_MEAN -fomit-frame-pointer -O3 -march=i486 -Wall::-D_MT:MINGW32:-lws2_32 -lgdi32 -lcrypt32:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts} EXPORT_VAR_AS_FN:${x86_asm}:coff:win32:cygwin-shared:-D_WINDLL:-mno-cygwin:.dll.a", 9 | # As for OPENSSL_USE_APPLINK. Applink makes it possible to use .dll 10 | # compiled with one compiler with application compiled with another 11 | # compiler. It's possible to engage Applink support in mingw64 build, 12 | @@ -545,7 +545,7 @@ 13 | # handling, one can't seriously consider its binaries for using with 14 | # non-mingw64 run-time environment. And as mingw64 is always consistent 15 | # with itself, Applink is never engaged and can as well be omitted. 16 | -"mingw64", "gcc:-mno-cygwin -DL_ENDIAN -O3 -Wall -DWIN32_LEAN_AND_MEAN -DUNICODE -D_UNICODE::-D_MT:MINGW64:-lws2_32 -lgdi32 -lcrypt32:SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:${x86_64_asm}:mingw64:win32:cygwin-shared:-D_WINDLL:-mno-cygwin:.dll.a", 17 | +"mingw64", "gcc:-mno-cygwin -DL_ENDIAN -O3 -Wall -DWIN32_LEAN_AND_MEAN -DUNICODE -D_UNICODE::-D_MT:MINGW64:-lws2_32 -lgdi32 -lcrypt32:SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:${x86_64_asm}:mingw64:win32:cygwin-shared:-D_WINDLL:-mno-cygwin:.dll.a", 18 | 19 | # UWIN 20 | "UWIN", "cc:-DTERMIOS -DL_ENDIAN -O -Wall:::UWIN::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:win32", 21 | -------------------------------------------------------------------------------- /config/patches/openssl/openssl-1.1.0f-do-not-install-docs.patch: -------------------------------------------------------------------------------- 1 | --- openssl-1.1.0f/Configurations/unix-Makefile.tmpl.orig 2017-10-22 13:23:48.592533617 +0300 2 | +++ openssl-1.1.0f/Configurations/unix-Makefile.tmpl 2017-10-22 13:26:21.199065333 +0300 3 | @@ -260,7 +260,7 @@ 4 | @echo "Tests are not supported with your chosen Configure options" 5 | @ : {- output_on() if !$disabled{tests}; "" -} 6 | 7 | -install: install_sw install_ssldirs install_docs 8 | +install: install_sw install_ssldirs 9 | 10 | uninstall: uninstall_docs uninstall_sw 11 | 12 | -------------------------------------------------------------------------------- /config/patches/openssl/openssl-3.0.0-enable-legacy-provider.patch: -------------------------------------------------------------------------------- 1 | diff --git a/apps/openssl-vms.cnf b/apps/openssl-vms.cnf 2 | index ac858d6..d1cb967 100644 3 | --- a/apps/openssl-vms.cnf 4 | +++ b/apps/openssl-vms.cnf 5 | @@ -56,6 +56,7 @@ providers = provider_sect 6 | # List of providers to load 7 | [provider_sect] 8 | default = default_sect 9 | +legacy = legacy_sect 10 | # The fips section name should match the section name inside the 11 | # included fipsmodule.cnf. 12 | # fips = fips_sect 13 | @@ -69,8 +70,10 @@ default = default_sect 14 | # OpenSSL may not work correctly which could lead to significant system 15 | # problems including inability to remotely access the system. 16 | [default_sect] 17 | -# activate = 1 18 | +activate = 1 19 | 20 | +[legacy_sect] 21 | +activate = 1 22 | 23 | #################################################################### 24 | [ ca ] 25 | diff --git a/apps/openssl.cnf b/apps/openssl.cnf 26 | index 12bc408..35a4282 100644 27 | --- a/apps/openssl.cnf 28 | +++ b/apps/openssl.cnf 29 | @@ -56,6 +56,7 @@ providers = provider_sect 30 | # List of providers to load 31 | [provider_sect] 32 | default = default_sect 33 | +legacy = legacy_sect 34 | # The fips section name should match the section name inside the 35 | # included fipsmodule.cnf. 36 | # fips = fips_sect 37 | @@ -69,8 +70,10 @@ default = default_sect 38 | # OpenSSL may not work correctly which could lead to significant system 39 | # problems including inability to remotely access the system. 40 | [default_sect] 41 | -# activate = 1 42 | +activate = 1 43 | 44 | +[legacy_sect] 45 | +activate = 1 46 | 47 | #################################################################### 48 | [ ca ] -------------------------------------------------------------------------------- /config/patches/openssl/openssl-3.0.1-do-not-install-docs.patch: -------------------------------------------------------------------------------- 1 | --- openssl-3.0.1/Configurations/unix-Makefile.tmpl.orig 2022-03-04 04:45:21.611028316 +0000 2 | +++ openssl-3.0.1/Configurations/unix-Makefile.tmpl 2022-03-04 04:45:39.164848171 +0000 3 | @@ -546,7 +546,7 @@ 4 | @echo "Tests are not supported with your chosen Configure options" 5 | @ : {- output_on() if !$disabled{tests}; "" -} 6 | 7 | -install: install_sw install_ssldirs install_docs {- $disabled{fips} ? "" : "install_fips" -} 8 | +install: install_sw install_ssldirs {- $disabled{fips} ? "" : "install_fips" -} 9 | 10 | uninstall: uninstall_docs uninstall_sw {- $disabled{fips} ? "" : "uninstall_fips" -} 11 | 12 | --- openssl-3.0.1/Configurations/windows-makefile.tmpl.orig 2022-03-04 04:46:02.850951693 +0000 13 | +++ openssl-3.0.1/Configurations/windows-makefile.tmpl 2022-03-04 04:46:13.353494915 +0000 14 | @@ -453,7 +453,7 @@ 15 | @$(ECHO) "Tests are not supported with your chosen Configure options" 16 | @{- output_on() if !$disabled{tests}; "\@rem" -} 17 | 18 | -install: install_sw install_ssldirs install_docs {- $disabled{fips} ? "" : "install_fips" -} 19 | +install: install_sw install_ssldirs {- $disabled{fips} ? "" : "install_fips" -} 20 | 21 | uninstall: uninstall_docs uninstall_sw {- $disabled{fips} ? "" : "uninstall_fips" -} 22 | -------------------------------------------------------------------------------- /config/patches/openssl/openssl-3.2.4-do-not-install-docs.patch: -------------------------------------------------------------------------------- 1 | --- openssl-3.2.4/Configurations/windows-makefile.tmpl.org 2025-03-03 12:15:23 2 | +++ openssl-3.2.4/Configurations/windows-makefile.tmpl 2025-03-03 12:23:04 3 | @@ -455,7 +455,7 @@ 4 | @$(ECHO) "Tests are not supported with your chosen Configure options" 5 | @{- output_on() if !$disabled{tests}; "\@rem" -} 6 | 7 | -install: install_sw install_ssldirs {- "install_docs" if !$disabled{docs}; -} {- $disabled{fips} ? "" : "install_fips" -} 8 | +install: install_sw install_ssldirs {- $disabled{fips} ? "" : "install_fips" -} 9 | 10 | uninstall: {- "uninstall_docs" if !$disabled{docs}; -} uninstall_sw {- $disabled{fips} ? "" : "uninstall_fips" -} 11 | 12 | -------------------------------------------------------------------------------- /config/patches/pkg-config/openbsd-charset.patch: -------------------------------------------------------------------------------- 1 | --- pkg-config-0.28.orig/glib/glib/libcharset/config.charset Wed May 13 18:21:29 2015 2 | +++ pkg-config-0.28/glib/glib/libcharset/config.charset Wed May 13 18:21:54 2015 3 | @@ -398,6 +398,16 @@ 4 | echo "BIG5 BIG5" 5 | echo "SJIS SHIFT_JIS" 6 | ;; 7 | + openbsd*) 8 | + echo "646 ASCII" 9 | + echo "ISO8859-1 ISO-8859-1" 10 | + echo "ISO8859-2 ISO-8859-2" 11 | + echo "ISO8859-4 ISO-8859-4" 12 | + echo "ISO8859-5 ISO-8859-5" 13 | + echo "ISO8859-7 ISO-8859-7" 14 | + echo "ISO8859-13 ISO-8859-13" 15 | + echo "ISO8859-15 ISO-8859-15" 16 | + ;; 17 | darwin[56]*) 18 | # Darwin 6.8 doesn't have nl_langinfo(CODESET); therefore 19 | # localcharset.c falls back to using the full locale name 20 | -------------------------------------------------------------------------------- /config/patches/popt/v1.16.ppc64le-configure.patch: -------------------------------------------------------------------------------- 1 | diff --git a/configure b/configure 2 | index ef45bd7..328c432 100755 3 | --- a/configure 4 | +++ b/configure 5 | @@ -7041,9 +7041,12 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) 6 | x86_64-*linux*) 7 | LD="${LD-ld} -m elf_x86_64" 8 | ;; 9 | - ppc*-*linux*|powerpc*-*linux*) 10 | + ppc64-*linux*|powerpc64-*linux*) 11 | LD="${LD-ld} -m elf64ppc" 12 | ;; 13 | + ppc64le-*linux*|powerpc64le-*linux*) 14 | + LD="${LD-ld} -m elf64lppc" 15 | + ;; 16 | s390*-*linux*|s390*-*tpf*) 17 | LD="${LD-ld} -m elf64_s390" 18 | ;; 19 | -------------------------------------------------------------------------------- /config/patches/redis/password-from-environment.patch: -------------------------------------------------------------------------------- 1 | diff --git a/src/server.c b/src/server.c 2 | index 280470f6..105bcd4d 100644 3 | --- a/src/server.c 4 | +++ b/src/server.c 5 | @@ -4188,6 +4188,14 @@ int main(int argc, char **argv) { 6 | serverLog(LL_WARNING, "Configuration loaded"); 7 | } 8 | 9 | + if (!server.requirepass) { 10 | + const char *password = getenv("REDIS_PASSWORD"); 11 | + if (password != NULL) { 12 | + server.requirepass = zstrdup(password); 13 | + } 14 | + unsetenv("REDIS_PASSWORD"); 15 | + } 16 | + 17 | server.supervised = redisIsSupervised(server.supervised_mode); 18 | int background = server.daemonize && !server.supervised; 19 | if (background) daemonize(); 20 | -------------------------------------------------------------------------------- /config/patches/ruby/remove_nano.patch: -------------------------------------------------------------------------------- 1 | --- ruby-2.7.2-orig/ext/win32ole/win32ole.c 2020-10-01 05:15:38.000000000 -0700 2 | +++ ruby-2.7.2/ext/win32ole/win32ole.c 2021-03-24 07:59:55.000000000 -0700 3 | @@ -3969,7 +3969,6 @@ 4 | { 5 | cWIN32OLE_lcid = LOCALE_SYSTEM_DEFAULT; 6 | g_ole_initialized_init(); 7 | - check_nano_server(); 8 | 9 | com_vtbl.QueryInterface = QueryInterface; 10 | com_vtbl.AddRef = AddRef; 11 | -------------------------------------------------------------------------------- /config/patches/ruby/ruby-2.6.7_c99.patch: -------------------------------------------------------------------------------- 1 | --- ruby-2.6.7-orig/hash.c 2021-04-05 04:48:34.000000000 -0700 2 | +++ ruby-2.6.7/hash.c 2021-04-16 13:50:06.000000000 -0700 3 | @@ -5658,7 +5658,8 @@ 4 | long keylen, elen; 5 | const char *keyptr, *eptr; 6 | RSTRING_GETMEM(key, keyptr, keylen); 7 | - for (long i=0; i= 202000L) 9 | # define RBIMPL_ATTR_MAYBE_UNUSED() [[maybe_unused]] 10 | #elif RBIMPL_HAS_ATTRIBUTE(unused) 11 | # define RBIMPL_ATTR_MAYBE_UNUSED() __attribute__((__unused__)) -------------------------------------------------------------------------------- /config/patches/ruby/ruby-3.1.4-configure.patch: -------------------------------------------------------------------------------- 1 | --- ruby-3.1.4/configure.ac.org 2024-05-28 14:20:02 2 | +++ ruby-3.1.4/configure.ac 2024-05-28 14:21:35 3 | @@ -363,6 +363,12 @@ 4 | icc_version=`echo =__ICC | $CC -E -xc - | sed '/^=/!d;s///;/^__ICC/d'` 5 | test -n "$icc_version" || icc_version=0 6 | # RUBY_APPEND_OPTIONS(XCFLAGS, ["-include ruby/config.h" "-include ruby/missing.h"]) 7 | + AC_CACHE_CHECK([if thread-local storage is supported], [rb_cv_tls_supported], 8 | + [AC_LINK_IFELSE([AC_LANG_PROGRAM([[int __thread conftest;]])], 9 | + [rb_cv_tls_supported=yes], 10 | + [rb_cv_tls_supported=no])]) 11 | + AS_IF([test x"$rb_cv_tls_supported" != xyes], 12 | + [AC_DEFINE(RB_THREAD_LOCAL_SPECIFIER_IS_UNSUPPORTED)]) 13 | ], [ 14 | linker_flag= 15 | ]) 16 | --- ruby-3.1.4/thread_pthread.h.org 2024-05-28 14:27:35 17 | +++ ruby-3.1.4/thread_pthread.h 2024-05-28 14:28:30 18 | @@ -72,7 +72,7 @@ 19 | 20 | #if __STDC_VERSION__ >= 201112 21 | #define RB_THREAD_LOCAL_SPECIFIER _Thread_local 22 | -#elif defined(__GNUC__) 23 | +#elif defined(__GNUC__) && !defined(RB_THREAD_LOCAL_SPECIFIER_IS_UNSUPPORTED) 24 | /* note that ICC (linux) and Clang are covered by __GNUC__ */ 25 | #define RB_THREAD_LOCAL_SPECIFIER __thread 26 | #else 27 | -------------------------------------------------------------------------------- /config/patches/ruby/ruby-3.1.6-configure.patch: -------------------------------------------------------------------------------- 1 | diff --git i/configure.ac w/configure.ac 2 | index fcae66f775e..c933ed8b91f 100644 3 | --- i/configure.ac 4 | +++ w/configure.ac 5 | @@ -363,6 +363,13 @@ AS_IF([test "$GCC" = yes], [ 6 | icc_version=`echo =__ICC | $CC -E -xc - | sed '/^=/!d;s///;/^__ICC/d'` 7 | test -n "$icc_version" || icc_version=0 8 | # RUBY_APPEND_OPTIONS(XCFLAGS, ["-include ruby/config.h" "-include ruby/missing.h"]) 9 | + 10 | + AC_CACHE_CHECK([if thread-local storage is supported], [rb_cv_tls_supported], 11 | + [AC_LINK_IFELSE([AC_LANG_PROGRAM([[int __thread conftest;]])], 12 | + [rb_cv_tls_supported=yes], 13 | + [rb_cv_tls_supported=no])]) 14 | + AS_IF([test x"$rb_cv_tls_supported" != xyes], 15 | + [AC_DEFINE(RB_THREAD_LOCAL_SPECIFIER_IS_UNSUPPORTED)]) 16 | ], [ 17 | linker_flag= 18 | ]) 19 | diff --git i/thread_pthread.h w/thread_pthread.h 20 | index 2ac354046c0..7d4df3e2785 100644 21 | --- i/thread_pthread.h 22 | +++ w/thread_pthread.h 23 | @@ -72,7 +72,7 @@ typedef struct rb_global_vm_lock_struct { 24 | 25 | #if __STDC_VERSION__ >= 201112 26 | #define RB_THREAD_LOCAL_SPECIFIER _Thread_local 27 | -#elif defined(__GNUC__) 28 | +#elif defined(__GNUC__) && !defined(RB_THREAD_LOCAL_SPECIFIER_IS_UNSUPPORTED) 29 | /* note that ICC (linux) and Clang are covered by __GNUC__ */ 30 | #define RB_THREAD_LOCAL_SPECIFIER __thread 31 | #else -------------------------------------------------------------------------------- /config/patches/ruby/ruby-aix-atomic.patch: -------------------------------------------------------------------------------- 1 | --- ruby-2.1.2/ruby_atomic.h.orig 2014-09-29 14:08:29.000000000 -0500 2 | +++ ruby-2.1.2/ruby_atomic.h 2014-09-29 14:08:41.000000000 -0500 3 | @@ -117,7 +117,7 @@ 4 | # endif 5 | 6 | #else 7 | -typedef int rb_atomic_t; 8 | +typedef long rb_atomic_t; 9 | #define NEED_RUBY_ATOMIC_OPS 10 | extern rb_atomic_t ruby_atomic_exchange(rb_atomic_t *ptr, rb_atomic_t val); 11 | extern rb_atomic_t ruby_atomic_compare_and_swap(rb_atomic_t *ptr, 12 | -------------------------------------------------------------------------------- /config/patches/ruby/ruby-aix-configure_26_and_later.patch: -------------------------------------------------------------------------------- 1 | --- ruby-2.6.0/configure.orig 2019-01-28 19:31:52.000000000 -0800 2 | +++ ruby-2.6.0/configure 2019-01-28 19:30:18.000000000 -0800 3 | @@ -26791,6 +26791,7 @@ 4 | LDSHARED="$LDSHARED ${linker_flag}-G" 5 | 6 | fi 7 | + DLDFLAGS='-eInit_$(TARGET)' 8 | EXTDLDFLAGS='-e$(TARGET_ENTRY)' 9 | XLDFLAGS="${linker_flag}"'-bE:$(ARCHFILE)'" ${linker_flag}-brtl" 10 | XLDFLAGS="$XLDFLAGS ${linker_flag}-blibpath:${prefix}/lib:${LIBPATH:-/usr/lib:/lib}" 11 | @@ -28066,7 +28067,8 @@ 12 | esac 13 | done 14 | LIBRUBYARG_SHARED='-L${libdir} -l${RUBY_SO_NAME}' 15 | - LIBS="$LIBS -lm -lc" 16 | + LIBS="$LIBS -lm -lc -lz" 17 | + LIBRUBY_SO='lib$(RUBY_SO_NAME).a' 18 | ;; #( 19 | darwin*) : 20 | -------------------------------------------------------------------------------- /config/patches/ruby/ruby-aix-vm-core.patch: -------------------------------------------------------------------------------- 1 | --- ruby-2.1.2/vm_core.h.orig 2014-09-29 14:05:24.000000000 -0500 2 | +++ ruby-2.1.2/vm_core.h 2014-09-29 14:05:39.000000000 -0500 3 | @@ -392,9 +392,9 @@ 4 | 5 | /* postponed_job */ 6 | struct rb_postponed_job_struct *postponed_job_buffer; 7 | - int postponed_job_index; 8 | + long postponed_job_index; 9 | 10 | - int src_encoding_index; 11 | + long src_encoding_index; 12 | 13 | VALUE verbose, debug, orig_progname, progname; 14 | VALUE coverages; 15 | -------------------------------------------------------------------------------- /config/patches/ruby/ruby-fast-load_26.patch: -------------------------------------------------------------------------------- 1 | diff --git a/load.c b/load.c 2 | index 576464fb68..ae89f63820 100644 3 | --- a/load.c 4 | +++ b/load.c 5 | @@ -908,6 +908,11 @@ search_required(VALUE fname, volatile VALUE *path, int safe_level, feature_func 6 | if (loading) *path = rb_filesystem_str_new_cstr(loading); 7 | return 'r'; 8 | } 9 | + else if ((ft = rb_feature_p(ftptr, 0, FALSE, FALSE, &loading)) == 's') { 10 | + if (loading) *path = rb_filesystem_str_new_cstr(loading); 11 | + return 's'; 12 | + } 13 | + 14 | tmp = fname; 15 | type = rb_find_file_ext_safe(&tmp, loadable_ext, safe_level); 16 | switch (type) { 17 | -------------------------------------------------------------------------------- /config/patches/ruby/ruby-fast-load_31.patch: -------------------------------------------------------------------------------- 1 | diff --git a/load.c b/load.c 2 | index a2b9da4..05ea96e 100644 3 | --- a/load.c 4 | +++ b/load.c 5 | @@ -981,6 +981,11 @@ search_required(rb_vm_t *vm, VALUE fname, volatile VALUE *path, feature_func rb_ 6 | if (loading) *path = rb_filesystem_str_new_cstr(loading); 7 | return 'r'; 8 | } 9 | + else if ((ft = rb_feature_p(vm, ftptr, 0, FALSE, FALSE, &loading)) == 's') { 10 | + if (loading) *path = rb_filesystem_str_new_cstr(loading); 11 | + return 's'; 12 | + } 13 | + 14 | tmp = fname; 15 | type = rb_find_file_ext(&tmp, ft == 's' ? ruby_ext : loadable_ext); 16 | switch (type) { -------------------------------------------------------------------------------- /config/patches/ruby/ruby-faster-load_26.patch: -------------------------------------------------------------------------------- 1 | --- a/load.c 2 | +++ b/load.c 3 | @@ -605,7 +605,7 @@ rb_load_internal0(rb_execution_context_t *ec, VALUE fname, int wrap) 4 | rb_parser_set_context(parser, NULL, FALSE); 5 | ast = (rb_ast_t *)rb_parser_load_file(parser, fname); 6 | iseq = rb_iseq_new_top(&ast->body, rb_fstring_lit(""), 7 | - fname, rb_realpath_internal(Qnil, fname, 1), NULL); 8 | + fname, fname, NULL); 9 | rb_ast_dispose(ast); 10 | } 11 | rb_exec_event_hook_script_compiled(ec, iseq, Qnil); 12 | -------------------------------------------------------------------------------- /config/patches/ruby/ruby-faster-load_27.patch: -------------------------------------------------------------------------------- 1 | --- ruby-2.7.0/load.c.orig 2020-02-26 12:19:04.963826602 -0800 2 | +++ ruby-2.7.0/load.c 2020-02-26 12:28:55.865876051 -0800 3 | @@ -578,7 +578,7 @@ 4 | rb_parser_set_context(parser, NULL, FALSE); 5 | ast = (rb_ast_t *)rb_parser_load_file(parser, fname); 6 | iseq = rb_iseq_new_top(&ast->body, rb_fstring_lit(""), 7 | - fname, rb_realpath_internal(Qnil, fname, 1), NULL); 8 | + fname, fname, NULL); 9 | rb_ast_dispose(ast); 10 | } 11 | rb_exec_event_hook_script_compiled(ec, iseq, Qnil); 12 | -------------------------------------------------------------------------------- /config/patches/ruby/ruby-faster-load_33.patch: -------------------------------------------------------------------------------- 1 | --- ruby-3.3.0/load.c.org 2024-05-07 13:13:50 2 | +++ ruby-3.3.0/load.c 2024-05-07 13:17:24 3 | @@ -764,7 +764,7 @@ 4 | VALUE realpath_map = get_loaded_features_realpath_map(th->vm); 5 | 6 | iseq = rb_iseq_new_top(&ast->body, rb_fstring_lit(""), 7 | - fname, realpath_internal_cached(realpath_map, fname), NULL); 8 | + fname, fname, NULL); 9 | rb_ast_dispose(ast); 10 | rb_vm_pop_frame(ec); 11 | RB_GC_GUARD(v); 12 | -------------------------------------------------------------------------------- /config/patches/ruby/ruby-mkmf.patch: -------------------------------------------------------------------------------- 1 | --- a/lib/mkmf.rb 2016-06-16 16:19:13.000000000 -0400 2 | +++ b/lib/mkmf.rb 2016-06-16 16:23:08.000000000 -0400 3 | @@ -365,6 +365,17 @@ 4 | end 5 | 6 | def libpath_env 7 | + # Patch for aix 8 | + # Ideally applications should not need LIBPATH/LD_LIBRARY_PATH set 9 | + # and should rely on the embedded paths in binaries/shared objects 10 | + # For chef say on AIX we already build using -blibpath and 11 | + # LD_RUN_PATH, so the extensions built using chef embedded ruby 12 | + # (using rbconfig) should have correct paths set. 13 | + # Setting LIBPATH overrides the behaviour of programs invoked from 14 | + # chef built ruby, for example xlc ends up picking up libiconv built 15 | + # within chef embedded ruby libs instead of the one from /usr/lib 16 | + return {} 17 | + 18 | # used only if native compiling 19 | if libpathenv = config_string("LIBPATHENV") 20 | pathenv = ENV[libpathenv] 21 | @@ -1799,7 +1810,7 @@ 22 | # 23 | if !CROSS_COMPILING 24 | case CONFIG['build_os'] 25 | - when 'mingw32' 26 | + when 'mingw32', 'mingw64' 27 | def mkintpath(path) 28 | # mingw uses make from msys and it needs special care 29 | # converts from C:\some\path to /C/some/path 30 | -------------------------------------------------------------------------------- /config/patches/ruby/ruby-no-stack-protector-strong.patch: -------------------------------------------------------------------------------- 1 | --- ruby-2.6.5/configure.old 2019-12-06 13:03:20.962288441 -0800 2 | +++ ruby-2.6.5/configure 2019-12-06 13:03:32.242919275 -0800 3 | @@ -8409,7 +8409,7 @@ 4 | esac 5 | if test -z "${stack_protector+set}"; then : 6 | 7 | - for opt in -fstack-protector-strong -fstack-protector 8 | + for opt in -fstack-protector 9 | do : 10 | 11 | 12 | -------------------------------------------------------------------------------- /config/patches/ruby/ruby-no-stack-protector.patch: -------------------------------------------------------------------------------- 1 | diff --git a/configure.dist b/configure 2 | index d83c15a..bd4813c 100755 3 | --- a/configure.dist 4 | +++ b/configure 5 | @@ -7491,7 +7491,7 @@ main () 6 | } 7 | _ACEOF 8 | if ac_fn_c_try_compile "$LINENO"; then : 9 | - stack_protector=yes 10 | + stack_protector=no 11 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 12 | $as_echo "yes" >&6; } 13 | else 14 | -------------------------------------------------------------------------------- /config/patches/ruby/ruby-win32_registry.patch: -------------------------------------------------------------------------------- 1 | --- "a/ext/win32/lib/win32/registry.rb" 2023-04-01 17:44:16.000000000 +0000 2 | +++ "b/ext/win32/lib/win32/registry.rb" 2024-06-13 21:23:53.522771500 +0000 3 | @@ -906,7 +906,7 @@ 4 | 5 | private 6 | 7 | - def export_string(str, enc = Encoding.default_internal || LOCALE) # :nodoc: 8 | + def export_string(str, enc = Encoding.default_internal || "utf-8") # :nodoc: 9 | str.encode(enc) 10 | end 11 | end 12 | -------------------------------------------------------------------------------- /config/patches/ruby/ruby-win32_resolv.patch: -------------------------------------------------------------------------------- 1 | --- ext/win32/lib/win32/resolv.rb.org 2024-03-25 19:48:15 2 | +++ ext/win32/lib/win32/resolv.rb 2024-03-25 19:49:01 3 | @@ -4,7 +4,7 @@ 4 | 5 | =end 6 | 7 | -require 'win32/registry' 8 | +require 'win32/registry' unless defined?(Win32::Registry) 9 | 10 | module Win32 11 | module Resolv 12 | -------------------------------------------------------------------------------- /config/patches/ruby/ruby-win32_warning_removal.patch: -------------------------------------------------------------------------------- 1 | --- a/ext/win32/lib/Win32API.rb 2 | +++ b/ext/win32/lib/Win32API.rb 3 | @@ -1,9 +1,6 @@ 4 | # -*- ruby -*- 5 | # frozen_string_literal: true 6 | 7 | -# for backward compatibility 8 | -warn "Win32API is deprecated after Ruby 1.9.1; use fiddle directly instead", uplevel: 2 9 | - 10 | require 'fiddle/import' 11 | 12 | class Win32API 13 | -------------------------------------------------------------------------------- /config/patches/ruby/ruby_aix_openssl.patch: -------------------------------------------------------------------------------- 1 | --- ruby-1.9.3-p547/ext/openssl/extconf.rb.orig 2014-07-15 17:50:30 -0500 2 | +++ ruby-1.9.3-p547/ext/openssl/extconf.rb 2014-07-15 17:50:39 -0500 3 | @@ -34,6 +34,7 @@ 4 | end 5 | 6 | Logging::message "=== Checking for system dependent stuff... ===\n" 7 | +have_library("z", "inflate") 8 | have_library("nsl", "t_open") 9 | have_library("socket", "socket") 10 | have_header("assert.h") 11 | -------------------------------------------------------------------------------- /config/patches/ruby/ruby_aix_ssl_EAGAIN.patch: -------------------------------------------------------------------------------- 1 | --- ruby-2.1.3/ext/openssl/lib/openssl/ssl.rb_orig 2014-10-24 13:09:44.000000000 -0500 2 | +++ ruby-2.1.3/ext/openssl/lib/openssl/ssl.rb 2014-10-24 13:11:01.000000000 -0500 3 | @@ -194,7 +194,15 @@ 4 | begin 5 | ssl = OpenSSL::SSL::SSLSocket.new(sock, @ctx) 6 | ssl.sync_close = true 7 | - ssl.accept if @start_immediately 8 | + if @start_immediately 9 | + # Retry on EAGAIN (may be due to underlying inprogress for TLS handshake or renegotiation requested.) 10 | + # Any other error is rescued further. 11 | + begin 12 | + ssl.accept 13 | + rescue Errno::EAGAIN 14 | + retry 15 | + end 16 | + end 17 | ssl 18 | rescue SSLError => ex 19 | sock.close 20 | -------------------------------------------------------------------------------- /config/patches/ruby/rvm-cflags.patch: -------------------------------------------------------------------------------- 1 | --- a/configure.in 2 | +++ b/configure.in 3 | @@ -267,11 +267,9 @@ 4 | cflagspat="$cflagspat;s|"`eval echo '"'"${debugflags}"'"' | sed 's/[[][|.*]]/\\&/g;s/^ */ /;s/ *$/ /'`'| |g' 5 | test -z "warnflags" || 6 | cflagspat="$cflagspat;s|"`eval echo '"'"${warnflags}"'"' | sed 's/[[][|.*]]/\\&/g;s/^ */ /;s/ *$/ /'`'| |g' 7 | -if test -z "${CFLAGS+set}"; then 8 | - cflags=`echo " $cflags " | sed "$cflagspat;s/^ *//;s/ *$//"` 9 | - orig_cflags="$cflags" 10 | - cflags="$cflags "'${optflags} ${debugflags} ${warnflags}' 11 | -fi 12 | +cflags=`echo " $cflags " | sed "$cflagspat;s/^ *//;s/ *$//"` 13 | +orig_cflags="$cflags" 14 | +cflags="$cflags "'${optflags} ${debugflags} ${warnflags}' 15 | if test -z "${CXXFLAGS+set}"; then 16 | cxxflags=`echo " $cxxflags " | sed "$cflagspat;s/^ *//;s/ *$//"` 17 | orig_cxxflags="$cxxflags" 18 | @@ -511,7 +509,8 @@ 19 | ]) 20 | fi 21 | 22 | -test -z "${ac_env_CFLAGS_set}" -a -n "${cflags+set}" && eval CFLAGS="\"$cflags $ARCH_FLAG\"" 23 | +test -z "${ac_env_CFLAGS_set}" && CFLAGS="$ARCH_FLAG" 24 | +test -n "${cflags:+set}" && eval CFLAGS="\"$cflags\${CFLAGS:+ $CFLAGS}\"" 25 | test -z "${ac_env_CXXFLAGS_set}" -a -n "${cxxflags+set}" && eval CXXFLAGS="\"$cxxflags $ARCH_FLAG\"" 26 | 27 | dnl check for large file stuff 28 | -------------------------------------------------------------------------------- /config/patches/stunnel/stunnel-on-windows-new.patch: -------------------------------------------------------------------------------- 1 | diff --git a/src/mingw.mk b/src/mingw.mk 2 | index cf15bee..3f61f48 100644 3 | --- a/src/mingw.mk 4 | +++ b/src/mingw.mk 5 | @@ -15,7 +15,7 @@ bindir = ../bin/$(win32_arch) 6 | objdir = ../obj/$(win32_arch) 7 | 8 | ifeq ($(win32_ssl_dir),) 9 | -win32_ssl_dir := /opt/openssl-$(win32_mingw) 10 | +win32_ssl_dir = $(WIN32_SSL_DIR_PATCHED) 11 | endif 12 | win32_cppflags = -I$(win32_ssl_dir)/include 13 | win32_cflags = -g -mthreads -O2 14 | @@ -59,7 +59,8 @@ win32_cli_objs = $(addsuffix .o, $(addprefix $(objdir)/, $(win32_cli))) 15 | 16 | win32_prefix = $(win32_targetcpu)-w64-mingw32- 17 | win32_cc = $(win32_prefix)gcc 18 | -win32_windres = $(win32_prefix)windres 19 | +# Our build system only has windres.exe, no prefix 20 | +win32_windres = windres 21 | 22 | all: mkdirs $(bindir)/stunnel.exe $(bindir)/tstunnel.exe 23 | 24 | diff --git a/src/stunnel.c b/src/stunnel.c 25 | index e25d5a2..368cdc8 100644 26 | --- a/src/stunnel.c 27 | +++ b/src/stunnel.c 28 | @@ -47,7 +47,13 @@ 29 | #pragma GCC diagnostic ignored "-Wpedantic" 30 | #endif /* __GNUC__ */ 31 | 32 | -#include 33 | +/* 34 | + * Maybe we could remove 35 | + * omnibus-software/config/patches/openssl-fips/openssl-fips-fix-compiler-flags-table-for-msys.patch 36 | + * and leave this include here? Building applink into openssl broke some version 37 | + * of Ruby 38 | + */ 39 | +/* #include */ 40 | 41 | #ifdef __GNUC__ 42 | #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6) -------------------------------------------------------------------------------- /config/patches/stunnel/stunnel-on-windows.patch: -------------------------------------------------------------------------------- 1 | diff --git a/src/mingw.mk b/src/mingw.mk 2 | index 244602f..055c425 100644 3 | --- a/src/mingw.mk 4 | +++ b/src/mingw.mk 5 | @@ -12,7 +12,7 @@ 6 | bindir = ../bin/$(win32_mingw) 7 | objdir = ../obj/$(win32_mingw) 8 | 9 | -win32_ssl_dir = /opt/openssl-$(win32_mingw) 10 | +win32_ssl_dir = $(WIN32_SSL_DIR_PATCHED) 11 | win32_cppflags = -I$(win32_ssl_dir)/include 12 | win32_cflags = -mthreads -fstack-protector -O2 13 | win32_cflags += -Wall -Wextra -Wpedantic -Wformat=2 -Wconversion -Wno-long-long 14 | @@ -34,7 +34,8 @@ win32_cli_objs = $(addsuffix .o, $(addprefix $(objdir)/, $(win32_cli))) 15 | 16 | win32_prefix = $(win32_targetcpu)-w64-mingw32- 17 | win32_cc = $(win32_prefix)gcc 18 | -win32_windres = $(win32_prefix)windres 19 | +# Our build system only has windres.exe, no prefix 20 | +win32_windres = windres 21 | 22 | all: mkdirs $(bindir)/stunnel.exe $(bindir)/tstunnel.exe 23 | 24 | diff --git a/src/stunnel.c b/src/stunnel.c 25 | index 00637b0..5a6a0a1 100644 26 | --- a/src/stunnel.c 27 | +++ b/src/stunnel.c 28 | @@ -46,7 +46,13 @@ 29 | #pragma GCC diagnostic ignored "-pedantic" 30 | #endif /* __GNUC__ */ 31 | 32 | -#include 33 | +/* 34 | + * Maybe we could remove 35 | + * omnibus-software/config/patches/openssl-fips/openssl-fips-fix-compiler-flags-table-for-msys.patch 36 | + * and leave this include here? Building applink into openssl broke some version 37 | + * of Ruby 38 | + */ 39 | +/* #include */ 40 | 41 | #ifdef __GNUC__ 42 | #pragma GCC diagnostic pop 43 | -------------------------------------------------------------------------------- /config/patches/zlib/zlib-windows-relocate.patch: -------------------------------------------------------------------------------- 1 | --- zlib-1.2.8/win32/Makefile.gcc.orig 2016-02-11 13:46:54.000000000 -0500 2 | +++ zlib-1.2.8/win32/Makefile.gcc 2016-02-11 13:53:08.000000000 -0500 3 | @@ -57,6 +57,8 @@ 4 | RC = $(PREFIX)windres 5 | RCFLAGS = --define GCC_WINDRES 6 | 7 | +IMAGE_BASE = 0x63300000 8 | + 9 | STRIP = $(PREFIX)strip 10 | 11 | CP = cp -fp 12 | @@ -93,7 +95,7 @@ 13 | $(IMPLIB): $(SHAREDLIB) 14 | 15 | $(SHAREDLIB): win32/zlib.def $(OBJS) $(OBJA) zlibrc.o 16 | - $(CC) -shared -Wl,--out-implib,$(IMPLIB) $(LDFLAGS) \ 17 | + $(CC) -shared -Wl,--out-implib,$(IMPLIB),--image-base,$(IMAGE_BASE) $(LDFLAGS) \ 18 | -o $@ win32/zlib.def $(OBJS) $(OBJA) zlibrc.o 19 | $(STRIP) $@ 20 | 21 | -------------------------------------------------------------------------------- /config/software/autoconf.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright:: Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | # expeditor/ignore: deprecated 2021-04 17 | 18 | name "autoconf" 19 | default_version "2.69" 20 | 21 | license "GPL-3.0" 22 | license_file "COPYING" 23 | license_file "COPYING.EXCEPTION" 24 | skip_transitive_dependency_licensing true 25 | 26 | dependency "m4" 27 | 28 | version("2.69") { source sha256: "954bd69b391edc12d6a4a51a2dd1476543da5c6bbf05a95b59dc0dd6fd4c2969" } 29 | 30 | source url: "https://ftp.gnu.org/gnu/autoconf/autoconf-#{version}.tar.gz" 31 | 32 | relative_path "autoconf-#{version}" 33 | 34 | build do 35 | env = with_standard_compiler_flags(with_embedded_path) 36 | 37 | if solaris2? 38 | env["M4"] = "#{install_dir}/embedded/bin/m4" 39 | end 40 | 41 | command "./configure" \ 42 | " --prefix=#{install_dir}/embedded", env: env 43 | 44 | make "-j #{workers}", env: env 45 | make "install", env: env 46 | end 47 | -------------------------------------------------------------------------------- /config/software/automake.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2012-2014 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | # expeditor/ignore: deprecated 2021-04 17 | 18 | name "automake" 19 | default_version "1.16" 20 | 21 | dependency "autoconf" 22 | dependency "perl-thread-queue" 23 | 24 | license "GPL-2.0" 25 | license_file "COPYING" 26 | skip_transitive_dependency_licensing true 27 | 28 | version("1.16") { source sha256: "80da43bb5665596ee389e6d8b64b4f122ea4b92a685b1dbd813cd1f0e0c2d83f" } 29 | version("1.15") { source sha256: "7946e945a96e28152ba5a6beb0625ca715c6e32ac55f2e353ef54def0c8ed924" } 30 | version("1.11.2") { source sha256: "c339e3871d6595620760725da61de02cf1c293af8a05b14592d6587ac39ce546" } 31 | 32 | source url: "https://ftp.gnu.org/gnu/automake/automake-#{version}.tar.gz" 33 | 34 | relative_path "automake-#{version}" 35 | 36 | build do 37 | env = with_standard_compiler_flags(with_embedded_path) 38 | 39 | if version == "1.15" 40 | command "./bootstrap.sh", env: env 41 | else 42 | command "./bootstrap", env: env 43 | end 44 | command "./configure" \ 45 | " --prefix=#{install_dir}/embedded", env: env 46 | 47 | make "-j #{workers}", env: env 48 | make "install", env: env 49 | end 50 | -------------------------------------------------------------------------------- /config/software/berkshelf-no-depselector.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2016 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | # expeditor/ignore: deprecated 2021-04 17 | 18 | name "berkshelf-no-depselector" 19 | default_version "main" 20 | 21 | license "Apache-2.0" 22 | license_file "LICENSE" 23 | 24 | source git: "https://github.com/berkshelf/berkshelf.git" 25 | 26 | relative_path "berkshelf" 27 | 28 | dependency "ruby" 29 | 30 | unless windows? && (project.overrides[:ruby].nil? || project.overrides[:ruby][:version] == "ruby-windows") 31 | dependency "libarchive" 32 | end 33 | 34 | dependency "nokogiri" 35 | 36 | build do 37 | env = with_standard_compiler_flags(with_embedded_path) 38 | 39 | bundle "config set --local without guard changelog development test", env: env 40 | bundle "install --jobs #{workers}", env: env 41 | 42 | bundle "exec thor gem:build", env: env 43 | 44 | gem "install pkg/berkshelf-*.gem" \ 45 | " --no-document", env: env 46 | end 47 | -------------------------------------------------------------------------------- /config/software/berkshelf.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2014-2018 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | # expeditor/ignore: deprecated 2021-04 17 | 18 | name "berkshelf" 19 | 20 | license "Apache-2.0" 21 | license_file "https://raw.githubusercontent.com/berkshelf/berkshelf/main/LICENSE" 22 | # berkshelf does not have any dependencies. We only install it from 23 | # rubygems here. 24 | skip_transitive_dependency_licensing true 25 | 26 | dependency "nokogiri" 27 | dependency "dep-selector-libgecode" 28 | 29 | build do 30 | env = with_standard_compiler_flags(with_embedded_path) 31 | 32 | gem "install berkshelf" \ 33 | " --no-document", env: env 34 | end 35 | -------------------------------------------------------------------------------- /config/software/binutils.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright:: Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | # expeditor/ignore: deprecated 2021-04 17 | 18 | name "binutils" 19 | default_version "2.26" 20 | 21 | version("2.35") { source sha256: "a3ac62bae4f339855b5449cfa9b49df90c635adbd67ecb8a0e7f3ae86a058da6" } 22 | version("2.26") { source sha256: "9615feddaeedc214d1a1ecd77b6697449c952eab69d79ab2125ea050e944bcc1" } 23 | 24 | license "GPL-3.0" 25 | license_file "COPYING" 26 | license_file "COPYING.LIB" 27 | 28 | source url: "https://ftp.gnu.org/gnu/binutils/binutils-#{version}.tar.gz" 29 | 30 | dependency "config_guess" 31 | 32 | relative_path "binutils-#{version}" 33 | 34 | build do 35 | env = with_standard_compiler_flags(with_embedded_path) 36 | 37 | update_config_guess 38 | 39 | configure_command = ["./configure", 40 | "--prefix=#{install_dir}/embedded", 41 | "--disable-libquadmath"] 42 | 43 | command configure_command.join(" "), env: env 44 | 45 | make "-j #{workers}", env: env 46 | make "-j #{workers} install", env: env 47 | end -------------------------------------------------------------------------------- /config/software/bundler.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2012-2019, Chef Software Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | # expeditor/ignore: deprecated 2021-04 17 | 18 | name "bundler" 19 | 20 | license "MIT" 21 | license_file "https://raw.githubusercontent.com/bundler/bundler/master/LICENSE.md" 22 | skip_transitive_dependency_licensing true 23 | 24 | dependency "rubygems" 25 | 26 | build do 27 | env = with_standard_compiler_flags(with_embedded_path) 28 | 29 | v_opts = "--version '#{version}'" unless version.nil? 30 | gem [ 31 | "install bundler", 32 | v_opts, 33 | "--no-document --force", 34 | ].compact.join(" "), env: env 35 | 36 | # confirm the install was successful 37 | command "bundle version", env: env 38 | end 39 | -------------------------------------------------------------------------------- /config/software/bzip2.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2013-2018 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | # Install bzip2 and its shared library, libbz2.so 17 | # This library object is required for building Python with the bz2 module, 18 | # and should be picked up automatically when building Python. 19 | 20 | name "bzip2" 21 | default_version "1.0.8" 22 | 23 | license "BSD-2-Clause" 24 | license_file "LICENSE" 25 | skip_transitive_dependency_licensing true 26 | 27 | dependency "zlib" 28 | dependency "openssl" 29 | 30 | # version_list: url=https://sourceware.org/pub/bzip2/ filter=*.tar.gz 31 | version("1.0.8") { source sha256: "ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269" } 32 | 33 | source url: "https://fossies.org/linux/misc/#{name}-#{version}.tar.gz" 34 | internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz", 35 | authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}" 36 | 37 | relative_path "#{name}-#{version}" 38 | 39 | build do 40 | env = with_standard_compiler_flags(with_embedded_path) 41 | 42 | # Avoid warning where .rodata cannot be used when making a shared object 43 | env["CFLAGS"] << " -fPIC" unless aix? 44 | 45 | # The list of arguments to pass to make 46 | args = "PREFIX='#{install_dir}/embedded' VERSION='#{version}'" 47 | args << " CFLAGS='-qpic=small -qpic=large -O2 -g -D_ALL_SOURCE -D_LARGE_FILES'" if aix? 48 | 49 | patch source: "makefile_take_env_vars.patch", plevel: 1, env: env 50 | patch source: "makefile_no_bins.patch", plevel: 1, env: env # removes various binaries we don't want to ship 51 | patch source: "soname_install_dir.patch", env: env if mac_os_x? 52 | patch source: "aix_makefile.patch", env: env if aix? 53 | 54 | make "#{args}", env: env 55 | make "#{args} -f Makefile-libbz2_so", env: env 56 | make "#{args} install", env: env 57 | end 58 | -------------------------------------------------------------------------------- /config/software/chef-gem.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2012-2014 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | # expeditor/ignore: deprecated 2021-04 17 | 18 | name "chef-gem" 19 | default_version "11.12.2" 20 | 21 | license "Apache-2.0" 22 | license_file "https://raw.githubusercontent.com/chef/chef/main/LICENSE" 23 | 24 | dependency "ruby" 25 | dependency "libffi" 26 | dependency "rb-readline" 27 | 28 | build do 29 | env = with_standard_compiler_flags(with_embedded_path) 30 | 31 | gem "install chef" \ 32 | " --version '#{version}'" \ 33 | " --bindir '#{install_dir}/embedded/bin'" \ 34 | " --no-document", env: env 35 | end 36 | -------------------------------------------------------------------------------- /config/software/config_guess.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2015 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | # expeditor/ignore: no version pinning 17 | 18 | name "config_guess" 19 | default_version "master" 20 | 21 | # Use our github mirror of the savannah repository 22 | source git: "https://github.com/chef/config-mirror.git" 23 | 24 | # http://savannah.gnu.org/projects/config 25 | license "GPL-3.0 (with exception)" 26 | license_file "config.guess" 27 | license_file "config.sub" 28 | skip_transitive_dependency_licensing true 29 | 30 | relative_path "config_guess-#{version}" 31 | 32 | build do 33 | mkdir "#{install_dir}/embedded/lib/config_guess" 34 | 35 | copy "#{project_dir}/config.guess", "#{install_dir}/embedded/lib/config_guess/config.guess" 36 | copy "#{project_dir}/config.sub", "#{install_dir}/embedded/lib/config_guess/config.sub" 37 | end 38 | -------------------------------------------------------------------------------- /config/software/cpanminus.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2014 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | name "cpanminus" 18 | default_version "1.7046" 19 | 20 | license "Artistic-2.0" 21 | license_file "http://dev.perl.org/licenses/artistic.html" 22 | skip_transitive_dependency_licensing true 23 | 24 | dependency "perl" 25 | 26 | # version_list: url=https://metacpan.org/pod/App::cpanminus filter=*.tar.gz 27 | 28 | version("1.7046") { source sha256: "cefc58349f9f741aba82b8ed3d672265b53ca4e4183f72613fce06d6ab97d30c" } 29 | version("1.7045") { source sha256: "f2ab7e18a695960ac07f072b369c1bf113ae278bf81aa807b3f4bdaf098df34d" } 30 | version("1.7040") { source sha256: "48a747c040689445f7db0edd169da0abd709a37cfece3ceecff0816c09beab0e" } 31 | version("1.7004") { source sha256: "5cef499d12418a877c68070fc14193bd700d47a286d95e16c517f9673493af79" } 32 | 33 | source url: "https://github.com/miyagawa/cpanminus/archive/#{version}.tar.gz" 34 | internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz", 35 | authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}" 36 | relative_path "cpanminus-#{version}" 37 | 38 | build do 39 | env = with_standard_compiler_flags(with_embedded_path) 40 | 41 | command "cat cpanm | perl - App::cpanminus", env: env 42 | end 43 | 44 | # Perl after 5.18 does not come with this by default 45 | build do 46 | env = with_standard_compiler_flags(with_embedded_path) 47 | 48 | command "cpanm Module::Build", env: env 49 | end 50 | 51 | -------------------------------------------------------------------------------- /config/software/dep-selector-libgecode.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2014-2018 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | # expeditor/ignore: deprecated 2021-04 17 | 18 | name "dep-selector-libgecode" 19 | default_version "1.3.1" 20 | 21 | license "Apache-2.0" 22 | license_file "https://raw.githubusercontent.com/chef/dep-selector-libgecode/master/LICENSE" 23 | # dep-selector-libgecode does not have any dependencies. We only install it from 24 | # rubygems here. 25 | skip_transitive_dependency_licensing true 26 | 27 | dependency "ruby" 28 | 29 | build do 30 | env = with_standard_compiler_flags(with_embedded_path) 31 | 32 | # On some RHEL-based systems, the default GCC that's installed is 4.1. We 33 | # need to use 4.4, which is provided by the gcc44 and gcc44-c++ packages. 34 | # These do not use the gcc binaries so we set the flags to point to the 35 | # correct version here. 36 | if File.exist?("/usr/bin/gcc44") 37 | env["CC"] = "gcc44" 38 | env["CXX"] = "g++44" 39 | end 40 | 41 | # Ruby DevKit ships with BSD Tar 42 | env["PROG_TAR"] = "bsdtar" if windows? 43 | env["ARFLAGS"] = "rv #{env["ARFLAGS"]}" if env["ARFLAGS"] 44 | 45 | gem "install dep-selector-libgecode" \ 46 | " --version '#{version}'" \ 47 | " --no-document", env: env 48 | end 49 | -------------------------------------------------------------------------------- /config/software/elixir.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2017 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | # expeditor/ignore: deprecated 2021-04 17 | 18 | name "elixir" 19 | default_version "1.4.2" 20 | 21 | license "Apache-2.0" 22 | license_file "LICENSE" 23 | 24 | dependency "erlang" 25 | 26 | version("1.4.2") { source sha256: "cb4e2ec4d68b3c8b800179b7ae5779e2999aa3375f74bd188d7d6703497f553f" } 27 | source url: "https://github.com/elixir-lang/elixir/archive/v#{version}.tar.gz" 28 | relative_path "elixir-#{version}" 29 | 30 | build do 31 | env = with_standard_compiler_flags(with_embedded_path) 32 | 33 | make env: env 34 | make "install PREFIX=#{install_dir}/embedded", env: env 35 | end 36 | -------------------------------------------------------------------------------- /config/software/fakeroot.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2016, Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | # expeditor/ignore: deprecated 2021-04 17 | 18 | name "fakeroot" 19 | default_version "1.20.2" 20 | 21 | version("1.20.2") { source sha256: "7c0a164d19db3efa9e802e0fc7cdfeff70ec6d26cdbdc4338c9c2823c5ea230c" } 22 | 23 | license "GPL-3.0" 24 | license_file "COPYING" 25 | 26 | source url: "ftp://ftp.debian.org/debian/pool/main/f/fakeroot/fakeroot_#{version}.orig.tar.bz2" 27 | 28 | relative_path "fakeroot-#{version}" 29 | 30 | build do 31 | env = with_standard_compiler_flags(with_embedded_path) 32 | 33 | configure_command = ["./configure", 34 | "--prefix=#{install_dir}/embedded", 35 | # This bit of magic is so we don't require the libcap library 36 | "ac_cv_func_capset=no"] 37 | 38 | command configure_command.join(" "), env: env 39 | make "-j #{workers}", env: env 40 | make "-j #{workers} install", env: env 41 | end 42 | -------------------------------------------------------------------------------- /config/software/ffi-yajl.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2012-2014 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | # expeditor/ignore: deprecated 2021-04 17 | 18 | name "ffi-yajl" 19 | default_version "main" 20 | relative_path "ffi-yajl" 21 | 22 | source git: "https://github.com/chef/ffi-yajl.git" 23 | 24 | license "MIT" 25 | license_file "LICENSE" 26 | 27 | dependency "ruby" 28 | 29 | dependency "libyajl2-gem" 30 | 31 | build do 32 | env = with_embedded_path 33 | 34 | # We should not be installing development dependencies either, but 35 | # this upstream bug causes issues between libyajl2-gem and ffi-yajl 36 | # (specifically, "corrupted Gemfile.lock" failures) 37 | # https://github.com/bundler/bundler/issues/4467 38 | bundle "config set --local without development_extras", env: env 39 | bundle "install", env: env 40 | bundle "exec rake gem", env: env 41 | 42 | delete "pkg/*java*" 43 | 44 | gem "install pkg/ffi-yajl-*.gem" \ 45 | " --no-document", env: env 46 | end 47 | -------------------------------------------------------------------------------- /config/software/figlet-fonts.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2015 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | # expeditor/ignore: deprecated 2021-04 17 | 18 | name "figlet-fonts" 19 | default_version "master" 20 | 21 | dependency "figlet" 22 | 23 | source git: "https://github.com/cmatsuoka/figlet-fonts.git" 24 | 25 | relative_path "figlet-fonts-#{version}" 26 | 27 | build do 28 | mkdir "#{install_dir}/share/figlet/fonts" 29 | copy "#{project_dir}/*/*.flc", "#{install_dir}/share/figlet/fonts/" 30 | copy "#{project_dir}/*/*.flf", "#{install_dir}/share/figlet/fonts/" 31 | end 32 | -------------------------------------------------------------------------------- /config/software/figlet.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2015 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | # expeditor/ignore: deprecated 2021-04 17 | 18 | name "figlet" 19 | default_version "2.2.5" 20 | 21 | version("2.2.5") { source md5: "eaaeb356007755c9770a842aefd8ed5f" } 22 | 23 | source url: "https://github.com/cmatsuoka/figlet/archive/#{version}.tar.gz" 24 | 25 | relative_path "figlet-#{version}" 26 | 27 | build do 28 | env = with_standard_compiler_flags(with_embedded_path) 29 | env["DEFAULTFONTDIR"] = "#{install_dir}/share/figlet/fonts" 30 | env["prefix"] = "#{install_dir}/embedded" 31 | 32 | if aix? 33 | # give us /opt/freeware/bin/patch 34 | env["PATH"] = "/opt/freeware/bin:#{env["PATH"]}" 35 | env["CC"] = "cc_r -q64" 36 | env["LD"] = "cc_r -q64" 37 | patch source: "aix-figlet-cdefs.patch", plevel: 0, env: env 38 | end 39 | 40 | mkdir "#{install_dir}/share/figlet/fonts" 41 | 42 | make "-j #{workers}", env: env 43 | make "install -j #{workers}", env: env 44 | end 45 | -------------------------------------------------------------------------------- /config/software/gdbm.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2012-2014 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | # expeditor/ignore: deprecated 2021-11 17 | # 18 | 19 | name "gdbm" 20 | default_version "1.8.3" 21 | 22 | dependency "config_guess" 23 | 24 | # Version 1.9 and above are GPLv3, do NOT add later versions in 25 | version("1.8.3") { source md5: "1d1b1d5c0245b1c00aff92da751e9aa1" } 26 | 27 | source url: "https://ftp.gnu.org/gnu/gdbm/gdbm-#{version}.tar.gz" 28 | 29 | relative_path "gdbm-#{version}" 30 | 31 | build do 32 | env = with_standard_compiler_flags(with_embedded_path) 33 | 34 | if version == "1.8.3" 35 | patch source: "v1.8.3-Makefile.in.patch", plevel: 0, env: env 36 | end 37 | 38 | update_config_guess 39 | 40 | if freebsd? 41 | command "./configure" \ 42 | " --enable-libgdbm-compat" \ 43 | " --with-pic" \ 44 | " --prefix=#{install_dir}/embedded", env: env 45 | else 46 | command "./configure" \ 47 | " --enable-libgdbm-compat" \ 48 | " --prefix=#{install_dir}/embedded", env: env 49 | end 50 | 51 | make "-j #{workers}", env: env 52 | make "install", env: env 53 | make "install-compat", env: env 54 | end 55 | -------------------------------------------------------------------------------- /config/software/gem-permissions.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2012-2014 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | # 18 | # Use this software definition to fix the gem-permissions on * nix builds. 19 | # 20 | # expeditor/ignore: logic only 21 | 22 | name "gem-permissions" 23 | 24 | default_version "0.0.1" 25 | 26 | license :project_license 27 | skip_transitive_dependency_licensing true 28 | 29 | build do 30 | unless windows? 31 | block "Fix gem permissions" do 32 | FileUtils.chmod_R("a+rX", "#{install_dir}/embedded/lib/ruby/gems/") 33 | rescue Errno::ENOENT 34 | # It is possible that the above method will fail for a variety of reasons, including: 35 | # * there is a symlink to a file that does not exist. 36 | # 37 | # If that happens we "retry" with a slower, but safer approach. 38 | Dir["#{install_dir}/embedded/lib/ruby/gems/**/**"].each do |entry| 39 | FileUtils.chmod("a+rX", entry) if File.exist?(entry) 40 | end 41 | end 42 | end 43 | end 44 | -------------------------------------------------------------------------------- /config/software/gmp.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2014 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | name "gmp" 18 | default_version "6.3.0" 19 | 20 | # version_list: url=https://ftp.gnu.org/gnu/gmp/ filter=*.tar.bz2 21 | 22 | version("6.2.1") { source sha256: "eae9326beb4158c386e39a356818031bd28f3124cf915f8c5b1dc4c7a36b4d7c" } 23 | version("6.1.0") { source sha256: "498449a994efeba527885c10405993427995d3f86b8768d8cdf8d9dd7c6b73e8" } 24 | version("6.0.0a") { source sha256: "7f8e9a804b9c6d07164cf754207be838ece1219425d64e28cfa3e70d5c759aaf" } 25 | version("6.3.0") { source sha256: "ac28211a7cfb609bae2e2c8d6058d66c8fe96434f740cf6fe2e47b000d1c20cb" } 26 | 27 | source url: "https://ftp.gnu.org/gnu/gmp/gmp-#{version}.tar.bz2" 28 | internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.bz2", 29 | authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}" 30 | 31 | if version == "6.0.0a" 32 | # version 6.0.0a expands to 6.0.0 33 | relative_path "gmp-6.0.0" 34 | else 35 | relative_path "gmp-#{version}" 36 | end 37 | 38 | build do 39 | env = with_standard_compiler_flags(with_embedded_path) 40 | 41 | if solaris2? 42 | env["ABI"] = "32" 43 | end 44 | 45 | configure_command = ["./configure", 46 | "--prefix=#{install_dir}/embedded"] 47 | 48 | command configure_command.join(" "), env: env 49 | make "-j #{workers}", env: env 50 | make "-j #{workers} install", env: env 51 | end 52 | -------------------------------------------------------------------------------- /config/software/go-uninstall.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2019 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | # expeditor/ignore: logic only 17 | 18 | name "go-uninstall" 19 | default_version "0.0.1" 20 | license :project_license 21 | dependency "go" 22 | 23 | build do 24 | # Until Omnibus has full support for build depedencies (see chef/omnibus#483) 25 | # we are going to manually uninstall Go 26 | %w{go gofmt}.each do |bin| 27 | delete "#{install_dir}/embedded/bin/#{bin}" 28 | end 29 | 30 | block "Delete Go language from embedded directory" do 31 | remove_directory "#{install_dir}/embedded/go" 32 | end 33 | end 34 | -------------------------------------------------------------------------------- /config/software/google-protobuf.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2018 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | ### NOTE ### 18 | # We build this definition from source rather than installing from the 19 | # gem so the native extension builds against the correct ruby rather than shipping 20 | # a vendored library for each 2.x version of ruby, which is what is packaged 21 | # with the gem. 22 | 23 | name "google-protobuf" 24 | default_version "v3.21.12" 25 | 26 | dependency "ruby" 27 | 28 | source git: "https://github.com/google/protobuf.git" 29 | 30 | # versions_list: https://github.com/protocolbuffers/protobuf/tags filter=*.tar.gz 31 | 32 | license :project_license 33 | 34 | build do 35 | mkdir "#{project_dir}/ruby/ext/google/protobuf_c/third_party/utf8_range" 36 | copy "#{project_dir}/third_party/utf8_range/utf8_range.h", "#{project_dir}/ruby/ext/google/protobuf_c/third_party/utf8_range" 37 | copy "#{project_dir}/third_party/utf8_range/naive.c", "#{project_dir}/ruby/ext/google/protobuf_c/third_party/utf8_range" 38 | copy "#{project_dir}/third_party/utf8_range/range2-neon.c", "#{project_dir}/ruby/ext/google/protobuf_c/third_party/utf8_range" 39 | copy "#{project_dir}/third_party/utf8_range/range2-sse.c", "#{project_dir}/ruby/ext/google/protobuf_c/third_party/utf8_range" 40 | copy "#{project_dir}/third_party/utf8_range/LICENSE", "#{project_dir}/ruby/ext/google/protobuf_c/third_party/utf8_range" 41 | 42 | env = with_standard_compiler_flags(with_embedded_path) 43 | gem "build google-protobuf.gemspec", env: env, cwd: "#{project_dir}/ruby" 44 | gem "install google-protobuf-*.gem", env: env, cwd: "#{project_dir}/ruby" 45 | end -------------------------------------------------------------------------------- /config/software/help2man.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2012-2014 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | # expeditor/ignore: deprecated 2021-04 17 | 18 | name "help2man" 19 | default_version "1.40.5" 20 | 21 | version "1.47.3" do 22 | source url: "https://ftp.gnu.org/gnu/help2man/help2man-1.47.3.tar.xz", 23 | md5: "d1d44a7a7b2bd61755a2045d96ecaea0" 24 | end 25 | 26 | version "1.40.5" do 27 | source url: "https://ftp.gnu.org/gnu/help2man/help2man-1.40.5.tar.gz", 28 | md5: "75a7d2f93765cd367aab98986a75f88c" 29 | end 30 | 31 | relative_path "help2man-1.40.5" 32 | 33 | build do 34 | env = with_standard_compiler_flags(with_embedded_path) 35 | 36 | command "./configure --prefix=#{install_dir}/embedded", env: env 37 | 38 | make env: env 39 | make "install", env: env 40 | end 41 | -------------------------------------------------------------------------------- /config/software/highline-gem.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2014 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | # expeditor/ignore: deprecated 2021-04 17 | 18 | name "highline-gem" 19 | default_version "1.6.21" 20 | 21 | license "Ruby" 22 | license_file "https://raw.githubusercontent.com/JEG2/highline/master/LICENSE" 23 | license_file "http://www.ruby-lang.org/en/LICENSE.txt" 24 | # highline does not have any dependencies. We only install it from 25 | # rubygems here. 26 | skip_transitive_dependency_licensing true 27 | 28 | dependency "ruby" 29 | 30 | build do 31 | env = with_standard_compiler_flags(with_embedded_path) 32 | 33 | gem "install highline" \ 34 | " --version '#{version}'" \ 35 | " --bindir '#{install_dir}/embedded/bin'" \ 36 | " --no-document", env: env 37 | end 38 | -------------------------------------------------------------------------------- /config/software/ibm-jre.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2015 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | # expeditor/ignore: deprecated 2021-04 17 | 18 | name "ibm-jre" 19 | 20 | license "IBM-Java-contractual-redistribution" 21 | # This license is stange, it says it cannot be redistributed but Chef has obtained 22 | # a contractual agreement with IBM to repackange and redistribute the JRE free of 23 | # charge and without support or warranty to our mutual customers 24 | license_file "copyright" 25 | license_file "license_en.txt" 26 | skip_transitive_dependency_licensing true 27 | 28 | if ppc64? 29 | source url: "https://s3.amazonaws.com/chef-releng/java/jre/ibm-java-ppc64-80.tar.xz", 30 | md5: "face417c3786945c2eb458f058b8616b" 31 | app_version = "ibm-java-ppc64-80" 32 | relative_path "ibm-java-ppc64-80" 33 | elsif ppc64le? 34 | source url: "https://s3.amazonaws.com/chef-releng/java/jre/ibm-java-ppc64le-80.tar.xz", 35 | md5: "199e3f1b5e3035bc813094e2973ffafb" 36 | app_version = "ibm-java-ppc64le-80" 37 | relative_path "ibm-java-ppc64le-80" 38 | elsif s390x? 39 | source url: "https://s3.amazonaws.com/chef-releng/java/jre/ibm-java-s390x-80.tar.gz", 40 | md5: "722bf5ab5436add5fdddbed4b07503c7" 41 | app_version = "ibm-java-s390x-80" 42 | relative_path "ibm-java-s390x-80" 43 | else 44 | puts "The IBM JRE support for this platform was not found, thus it will not be installed" 45 | end 46 | 47 | default_version app_version 48 | 49 | whitelist_file "jre/bin/javaws" 50 | whitelist_file "jre/bin/policytool" 51 | whitelist_file "jre/lib" 52 | whitelist_file "jre/plugin" 53 | whitelist_file "jre/bin/appletviewer" 54 | whitelist_file "jre/bin/unpack200" 55 | 56 | build do 57 | mkdir "#{install_dir}/embedded/jre" 58 | sync "#{project_dir}/jre/", "#{install_dir}/embedded/jre" 59 | end 60 | -------------------------------------------------------------------------------- /config/software/inspec.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright:: Copyright (c) Chef Software Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | # expeditor/ignore: no version pinning 17 | 18 | name "inspec" 19 | default_version "main" 20 | 21 | license "Apache-2.0" 22 | license_file "LICENSE" 23 | 24 | source git: "https://github.com/chef/inspec.git" 25 | 26 | dependency "ruby" 27 | dependency "nokogiri" 28 | # Dependency added to avoid this pry error: 29 | # "Sorry, you can't use Pry without Readline or a compatible library." 30 | dependency "rb-readline" 31 | 32 | build do 33 | env = with_standard_compiler_flags(with_embedded_path) 34 | 35 | bundle "config set --local without test integration tools maintenance", env: env 36 | bundle "install", env: env 37 | 38 | gem "build inspec.gemspec", env: env 39 | gem "install inspec-*.gem" \ 40 | " --no-document", env: env 41 | 42 | appbundle "inspec", env: env 43 | end 44 | -------------------------------------------------------------------------------- /config/software/keepalived.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2012-2014 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | # expeditor/ignore: deprecated 2021-04 17 | 18 | name "keepalived" 19 | default_version "1.2.9" 20 | 21 | license "GPL-2.0" 22 | license_file "COPYING" 23 | skip_transitive_dependency_licensing true 24 | 25 | dependency "popt" 26 | dependency "openssl" 27 | 28 | source url: "http://www.keepalived.org/software/keepalived-#{version}.tar.gz" 29 | 30 | version "1.2.19" do 31 | source md5: "5c98b06639dd50a6bff76901b53febb6" 32 | end 33 | 34 | version "1.2.9" do 35 | source md5: "adfad98a2cc34230867d794ebc633492" 36 | end 37 | 38 | version "1.1.20" do 39 | source md5: "6c3065c94bb9e2187c4b5a80f6d8be31" 40 | end 41 | 42 | relative_path "keepalived-#{version}" 43 | 44 | build do 45 | env = with_standard_compiler_flags(with_embedded_path) 46 | 47 | # This is cherry-picked from change 48 | # d384ce8b3492b9d76af23e621a20bed8da9c6016 of keepalived, (master 49 | # branch), and should be no longer necessary after 1.2.9. 50 | if version == "1.2.9" 51 | patch source: "keepalived-1.2.9_opscode_centos_5.patch", env: env 52 | end 53 | 54 | configure = [ 55 | "./configure", 56 | "--prefix=#{install_dir}/embedded", 57 | " --disable-iconv", 58 | ] 59 | 60 | if suse? 61 | configure << "--with-kernel-dir=/usr/src/linux/include/uapi" 62 | end 63 | 64 | command configure.join(" "), env: env 65 | 66 | make "-j #{workers}", env: env 67 | make "install", env: env 68 | end 69 | -------------------------------------------------------------------------------- /config/software/keydb.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright:: Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | name "keydb" 18 | 19 | license "BSD-3-Clause" 20 | license_file "COPYING" 21 | skip_transitive_dependency_licensing true 22 | 23 | dependency "config_guess" 24 | dependency "openssl" 25 | dependency "libuuid" 26 | dependency "curl" 27 | 28 | default_version "6.3.4" 29 | 30 | source url: "https://github.com/Snapchat/KeyDB/archive/refs/tags/v#{version}.tar.gz" 31 | internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz", 32 | authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}" 33 | relative_path "KeyDB-#{version}" 34 | 35 | # version_list: url=https://github.com/Snapchat/KeyDB/archive/refs/tags/ filter=*.tar.gz 36 | version("6.3.4") { source sha256: "229190b251f921e05aff7b0d2f04b5676c198131e2abbec1e2cfb2e61215e2f3" } 37 | 38 | build do 39 | env = with_standard_compiler_flags(with_embedded_path).merge( 40 | "PREFIX" => "#{install_dir}/embedded" 41 | ) 42 | env["CFLAGS"] << " -I#{install_dir}/embedded/include" 43 | env["LDFLAGS"] << " -L#{install_dir}/embedded/lib" 44 | if version.satisfies?(">=6.3.4") 45 | patch source: "remove-libatomic-dep", env: env 46 | end 47 | if suse? 48 | env["CFLAGS"] << " -fno-lto" 49 | env["CXXFLAGS"] << " -fno-lto" 50 | end 51 | update_config_guess 52 | 53 | make "-j #{workers}", env: env 54 | make "install", env: env 55 | end 56 | -------------------------------------------------------------------------------- /config/software/libgcc.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2012-2014 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | # 18 | # NOTE: Instead of depending on this software definition, there is no 19 | # reason not to include "-static-libgcc" in your LDFLAGS instead. 20 | # That will probably be the best solution going forwards rather than 21 | # fuss around with the dynamic linking business here. 22 | # 23 | 24 | # # Uncomment the following code to throw a warning when someone depends on this 25 | # # software definition. 26 | # Omnibus.logger.deprecated('libgcc') do 27 | # "Please do not use the libgcc dependency, it will be removed in the " \ 28 | # "future. Compile with `--static-libgcc' instead!" 29 | # end 30 | # expeditor/ignore: logic only 31 | 32 | name "libgcc" 33 | description "On UNIX systems where we bootstrap a compiler, copy the libgcc" 34 | default_version "0.0.1" 35 | 36 | build do 37 | libgcc_file = if solaris2? 38 | "/opt/csw/lib/libgcc_s.so.1" 39 | elsif freebsd? 40 | "/lib/libgcc_s.so.1" 41 | else 42 | nil 43 | end 44 | 45 | if libgcc_file 46 | if File.exist?(libgcc_file) 47 | copy libgcc_file, "#{install_dir}/embedded/lib/" 48 | else 49 | raise "Cannot find libgcc -- where is your gcc compiler?" 50 | end 51 | end 52 | end 53 | -------------------------------------------------------------------------------- /config/software/libiconv.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright:: Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | # CAUTION - although its not used, external libraries such as nokogiri may pick up an optional dep on 18 | # libiconv such that removal of libiconv will break those libraries on upgrade. With an better story around 19 | # external gem handling when chef-client is upgraded libconv could be dropped. 20 | # 21 | name "libiconv" 22 | default_version "1.17" 23 | 24 | license "LGPL-2.1" 25 | license_file "COPYING.LIB" 26 | skip_transitive_dependency_licensing true 27 | 28 | dependency "config_guess" 29 | 30 | # versions_list: https://ftp.gnu.org/pub/gnu/libiconv/ filter=*.tar.gz 31 | version("1.17") { source sha256: "8f74213b56238c85a50a5329f77e06198771e70dd9a739779f4c02f65d971313" } 32 | version("1.16") { source sha256: "e6a1b1b589654277ee790cce3734f07876ac4ccfaecbee8afa0b649cf529cc04" } 33 | version("1.15") { source sha256: "ccf536620a45458d26ba83887a983b96827001e92a13847b45e4925cc8913178" } 34 | 35 | source url: "https://ftp.gnu.org/pub/gnu/libiconv/libiconv-#{version}.tar.gz" 36 | internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz", 37 | authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}" 38 | 39 | relative_path "libiconv-#{version}" 40 | 41 | build do 42 | env = with_standard_compiler_flags(with_embedded_path) 43 | 44 | # freebsd 10 needs to be build PIC 45 | env["CFLAGS"] << " -fPIC" if freebsd? 46 | 47 | update_config_guess(target: "build-aux") 48 | update_config_guess(target: "libcharset/build-aux") 49 | 50 | configure(env: env) 51 | 52 | pmake = "-j #{workers}" 53 | make "#{pmake}", env: env 54 | make "#{pmake} install-lib" \ 55 | " libdir=#{install_dir}/embedded/lib" \ 56 | " includedir=#{install_dir}/embedded/include", env: env 57 | end 58 | -------------------------------------------------------------------------------- /config/software/libnghttp2.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright:: Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | name "libnghttp2" 18 | default_version "1.58.0" 19 | 20 | dependency "openssl" 21 | 22 | license "MIT" 23 | license_file "COPYING" 24 | skip_transitive_dependency_licensing true 25 | 26 | version("1.58.0") { source sha256: "9ebdfbfbca164ef72bdf5fd2a94a4e6dfb54ec39d2ef249aeb750a91ae361dfb" } 27 | 28 | source url: "https://github.com/nghttp2/nghttp2/releases/download/v#{version}/nghttp2-#{version}.tar.gz" 29 | internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz", 30 | authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}" 31 | 32 | relative_path "nghttp2-#{version}" 33 | 34 | build do 35 | env = with_standard_compiler_flags(with_embedded_path) 36 | 37 | configure_options = [ 38 | "--prefix=#{install_dir}/embedded", 39 | "--with-openssl", 40 | ] 41 | 42 | configure(*configure_options, env: env) 43 | 44 | make "-j #{workers}", env: env 45 | make "install", env: env 46 | end 47 | -------------------------------------------------------------------------------- /config/software/libossp-uuid.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2012-2014 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | name "libossp-uuid" 18 | default_version "1.6.2" 19 | 20 | license "MIT" 21 | license_file "README" 22 | skip_transitive_dependency_licensing true 23 | 24 | dependency "config_guess" 25 | 26 | # version_list: url=https://www.mirrorservice.org/sites/ftp.ossp.org/pkg/lib/uuid/ filter=*.tar.gz 27 | 28 | version("1.6.2") { source sha256: "11a615225baa5f8bb686824423f50e4427acd3f70d394765bdff32801f0fd5b0" } 29 | 30 | # ftp on ftp.ossp.org is unavaiable so we must use another mirror site. 31 | source url: "https://www.mirrorservice.org/sites/ftp.ossp.org/pkg/lib/uuid/uuid-#{version}.tar.gz" 32 | internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz", 33 | authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}" 34 | 35 | relative_path "uuid-#{version}" 36 | 37 | build do 38 | env = with_standard_compiler_flags(with_embedded_path) 39 | 40 | update_config_guess 41 | 42 | command "./configure" \ 43 | " --prefix=#{install_dir}/embedded", env: env 44 | 45 | make "-j #{workers}", env: env 46 | make "install", env: env 47 | end 48 | -------------------------------------------------------------------------------- /config/software/libsodium.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright:: Copyright (c) 2012-2019, Chef Software Inc. 3 | # License:: Apache License, Version 2.0 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | # 17 | 18 | # We use the version in util-linux, and only build the libuuid subdirectory 19 | name "libsodium" 20 | default_version "1.0.18" 21 | 22 | license "ISC" 23 | license_file "LICENSE" 24 | skip_transitive_dependency_licensing true 25 | 26 | # version_list: url=https://download.libsodium.org/libsodium/releases/ filter=*.tar.gz 27 | 28 | version("1.0.17") { source sha256: "0cc3dae33e642cc187b5ceb467e0ad0e1b51dcba577de1190e9ffa17766ac2b1" } 29 | version("1.0.18") { source sha256: "6f504490b342a4f8a4c4a02fc9b866cbef8622d5df4e5452b46be121e46636c1" } 30 | 31 | source url: "https://download.libsodium.org/libsodium/releases/libsodium-#{version}.tar.gz" 32 | internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz", 33 | authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}" 34 | 35 | relative_path "libsodium-#{version}" 36 | 37 | build do 38 | env = with_standard_compiler_flags(with_embedded_path) 39 | configure "--disable-dependency-tracking", env: env 40 | make "-j #{workers}", env: env 41 | make "install", env: env 42 | end 43 | -------------------------------------------------------------------------------- /config/software/libtool.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright:: Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | name "libtool" 18 | default_version "2.4.7" 19 | 20 | license "GPL-2.0" 21 | license_file "COPYING" 22 | skip_transitive_dependency_licensing true 23 | 24 | dependency "config_guess" 25 | 26 | # version_list: url=https://ftp.gnu.org/gnu/libtool/ filter=*.tar.gz 27 | 28 | version("2.4.7") { source sha256: "04e96c2404ea70c590c546eba4202a4e12722c640016c12b9b2f1ce3d481e9a8" } 29 | version("2.4.6") { source sha256: "e3bd4d5d3d025a36c21dd6af7ea818a2afcd4dfc1ea5a17b39d7854bcd0c06e3" } 30 | version("2.4.2") { source sha256: "b38de44862a987293cd3d8dfae1c409d514b6c4e794ebc93648febf9afc38918" } 31 | version("2.4") { source sha256: "13df57ab63a94e196c5d6e95d64e53262834fe780d5e82c28f177f9f71ddf62e" } 32 | 33 | source url: "https://ftp.gnu.org/gnu/libtool/libtool-#{version}.tar.gz" 34 | internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz", 35 | authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}" 36 | 37 | relative_path "libtool-#{version}" 38 | 39 | build do 40 | env = with_standard_compiler_flags(with_embedded_path) 41 | 42 | update_config_guess 43 | update_config_guess(target: "libltdl/config") 44 | 45 | if aix? 46 | env["M4"] = "/opt/freeware/bin/m4" 47 | elsif solaris2? 48 | # We hit this bug on Solaris11 platforms bug#14291: libtool 2.4.2 fails to build due to macro_revision reversion 49 | # The problem occurs with LANG=en_US.UTF-8 but not with LANG=C 50 | env["LANG"] = "C" 51 | end 52 | 53 | command "./configure" \ 54 | " --prefix=#{install_dir}/embedded", env: env 55 | 56 | make env: env 57 | make "install", env: env 58 | end 59 | -------------------------------------------------------------------------------- /config/software/libuuid.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2012-2014 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | # expeditor/ignore: deprecated 2021-11 17 | # 18 | 19 | name "libuuid" 20 | default_version "2.21" 21 | 22 | license "LGPL-2.1" 23 | license_file "COPYING" 24 | 25 | source url: "https://www.kernel.org/pub/linux/utils/util-linux/v#{version}/util-linux-#{version}.tar.gz" 26 | # We use the version in util-linux, and only build the libuuid subdirectory 27 | version "2.27.1" do 28 | source md5: "e9c73747eadf5201b2a198530add4f87", 29 | url: "https://www.kernel.org/pub/linux/utils/util-linux/v2.27/util-linux-2.27.1.tar.gz" 30 | end 31 | version "2.21" do 32 | source md5: "4222aa8c2a1b78889e959a4722f1881a" 33 | end 34 | 35 | relative_path "util-linux-#{version}" 36 | 37 | build do 38 | env = with_standard_compiler_flags(with_embedded_path) 39 | 40 | command "./configure --prefix=#{install_dir}/embedded", env: env 41 | 42 | make "-j #{workers}", env: env, cwd: "#{project_dir}/libuuid" 43 | make "-j #{workers} install", env: env, cwd: "#{project_dir}/libuuid" 44 | end 45 | -------------------------------------------------------------------------------- /config/software/libxcrypt.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright:: Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | name "libxcrypt" 18 | default_version "4.4.38" # Updated for modern .so.2 implementation 19 | 20 | license "LGPL-2.1" 21 | license_file "COPYING.LIB" 22 | skip_transitive_dependency_licensing true 23 | 24 | version("4.4.38") { source sha256: "80304b9c306ea799327f01d9a7549bdb28317789182631f1b54f4511b4206dd6" } 25 | version("4.4.36") { source sha256: "e5e1f4caee0a01de2aee26e3138807d6d3ca2b8e67287966d1fefd65e1fd8943" } 26 | 27 | source url: "https://github.com/besser82/libxcrypt/releases/download/v#{version}/libxcrypt-#{version}.tar.xz" 28 | internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.xz", 29 | authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}" 30 | 31 | relative_path "libxcrypt-#{version}" 32 | 33 | build do 34 | env = with_standard_compiler_flags(with_embedded_path) 35 | 36 | configure_command = [ 37 | "./configure", 38 | "--prefix=#{install_dir}/embedded", 39 | "--disable-werror", 40 | "--enable-obsolete-api=no", 41 | "--disable-static", 42 | "--with-pic", 43 | ] 44 | 45 | command configure_command.join(" "), env: env 46 | make "-j #{workers}", env: env 47 | make "install", env: env 48 | 49 | # Post-install verification 50 | command "readelf -d #{install_dir}/embedded/lib/libcrypt.so | grep 'SONAME.*libcrypt.so.2'", env: env 51 | # command "objdump -T #{install_dir}/embedded/lib/libcrypt.so | grep 'GLIBC_2.2.5.*crypt_r'", env: env 52 | end 53 | 54 | -------------------------------------------------------------------------------- /config/software/libyajl2-gem.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2012-2014 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | # expeditor/ignore: deprecated 2021-04 17 | 18 | name "libyajl2-gem" 19 | default_version "main" 20 | relative_path "libyajl2-gem" 21 | 22 | source git: "https://github.com/chef/libyajl2-gem.git" 23 | 24 | license "Apache-2.0" 25 | license_file "LICENSE" 26 | 27 | dependency "ruby" 28 | 29 | build do 30 | env = with_embedded_path 31 | 32 | command "git submodule init", env: env 33 | command "git submodule update", env: env 34 | 35 | bundle "config set --local without development_extras", env: env 36 | bundle "install", env: env 37 | bundle "exec rake prep", env: env 38 | bundle "exec rake gem", env: env 39 | 40 | delete "pkg/*java*" 41 | 42 | gem "install pkg/libyajl2-*.gem" \ 43 | " --no-document", env: env 44 | end 45 | -------------------------------------------------------------------------------- /config/software/libyaml.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright:: Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | name "libyaml" 18 | default_version "0.2.5" 19 | 20 | license "MIT" 21 | license_file "LICENSE" 22 | skip_transitive_dependency_licensing true 23 | 24 | dependency "config_guess" 25 | 26 | # versions_list: https://pyyaml.org/download/libyaml/ filter=*.tar.gz 27 | version("0.2.5") { source sha256: "c642ae9b75fee120b2d96c712538bd2cf283228d2337df2cf2988e3c02678ef4" } 28 | version("0.2.4") { source sha256: "d80aeda8747b7c26fbbfd87ab687786e58394a8435ae3970e79cb97882e30557" } 29 | version("0.1.7") { source sha256: "8088e457264a98ba451a90b8661fcb4f9d6f478f7265d48322a196cec2480729" } 30 | 31 | source url: "https://pyyaml.org/download/libyaml/yaml-#{version}.tar.gz" 32 | internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/yaml-#{version}.tar.gz", 33 | authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}" 34 | 35 | relative_path "yaml-#{version}" 36 | 37 | build do 38 | env = with_standard_compiler_flags(with_embedded_path) 39 | 40 | update_config_guess(target: "config") 41 | 42 | configure "--enable-shared", env: env 43 | 44 | # Windows had worse automake/libtool version issues. 45 | # Just patch the output instead. 46 | if windows? && version.satisfies?("< 0.2.5") 47 | patch source: "windows-configure.patch", plevel: 1, env: env 48 | end 49 | 50 | make "-j #{workers}", env: env 51 | make "-j #{workers} install", env: env 52 | end 53 | -------------------------------------------------------------------------------- /config/software/m4.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright:: Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | # expeditor/ignore: deprecated 2021-04 17 | 18 | name "m4" 19 | default_version "1.4.18" 20 | 21 | license "GPL-3.0" 22 | license_file "COPYING" 23 | skip_transitive_dependency_licensing true 24 | 25 | version("1.4.18") { source sha256: "ab2633921a5cd38e48797bf5521ad259bdc4b979078034a3b790d7fec5493fab" } 26 | 27 | source url: "https://ftp.gnu.org/gnu/m4/m4-#{version}.tar.gz" 28 | 29 | relative_path "m4-#{version}" 30 | 31 | build do 32 | env = with_standard_compiler_flags(with_embedded_path) 33 | 34 | patch source: "m4-1.4.18-glibc-change-work-around.patch", plevel: 1, env: env if version == "1.4.18" 35 | 36 | command "./configure --prefix=#{install_dir}/embedded", env: env 37 | 38 | make "-j #{workers}", env: env 39 | make "-j #{workers} install", env: env 40 | end 41 | -------------------------------------------------------------------------------- /config/software/make.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2012-2019 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | name "make" 18 | default_version "4.3" 19 | 20 | license "GPL-3.0" 21 | license_file "COPYING" 22 | 23 | # version_list: url=https://ftp.gnu.org/gnu/make/ filter=*.tar.gz 24 | 25 | version("4.4") { source sha256: "581f4d4e872da74b3941c874215898a7d35802f03732bdccee1d4a7979105d18" } 26 | version("4.3") { source sha256: "e05fdde47c5f7ca45cb697e973894ff4f5d79e13b750ed57d7b66d8defc78e19" } 27 | 28 | source url: "https://ftp.gnu.org/gnu/make/make-#{version}.tar.gz" 29 | internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz", 30 | authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}" 31 | 32 | relative_path "make-#{version}" 33 | 34 | build do 35 | env = with_standard_compiler_flags(with_embedded_path) 36 | 37 | command "./configure" \ 38 | " --disable-nls" \ 39 | " --prefix=#{install_dir}/embedded", env: env 40 | 41 | make "-j #{workers}", env: env 42 | make "install", env: env 43 | 44 | # We are very prescriptive. We made make, we will make all the things use it! 45 | link "#{install_dir}/embedded/bin/make", "#{install_dir}/embedded/bin/gmake" 46 | end 47 | -------------------------------------------------------------------------------- /config/software/makedepend.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2014 Chef, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | name "makedepend" 18 | default_version "1.0.8" 19 | 20 | license "MIT" 21 | license_file "COPYING" 22 | skip_transitive_dependency_licensing true 23 | 24 | # version_list: url=https://www.x.org/releases/individual/util/ Filter=makedepend-*.tar.gz 25 | 26 | version("1.0.8") { source sha256: "275f0d2b196bfdc740aab9f02bb48cb7a97e4dfea011a7b468ed5648d0019e54" } 27 | version("1.0.6") { source sha256: "845f6708fc850bf53f5b1d0fb4352c4feab3949f140b26f71b22faba354c3365" } 28 | version("1.0.5") { source sha256: "503903d41fb5badb73cb70d7b3740c8b30fe1cc68c504d3b6a85e6644c4e5004" } 29 | 30 | source url: "https://www.x.org/releases/individual/util/makedepend-#{version}.tar.gz" 31 | internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz", 32 | authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}" 33 | 34 | relative_path "makedepend-#{version}" 35 | 36 | dependency "xproto" 37 | dependency "util-macros" 38 | dependency "pkg-config-lite" 39 | 40 | build do 41 | env = with_standard_compiler_flags(with_embedded_path) 42 | 43 | command "./configure --prefix=#{install_dir}/embedded", env: env 44 | 45 | make "-j #{workers}", env: env 46 | make "-j #{workers} install", env: env 47 | end 48 | -------------------------------------------------------------------------------- /config/software/mpc.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2014-2019 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | # expeditor/ignore: deprecated 2022-12 17 | 18 | name "mpc" 19 | default_version "1.3.1" 20 | 21 | dependency "gmp" 22 | dependency "mpfr" 23 | 24 | license "LGPL-3.0-or-later" 25 | license_file "COPYING.LESSER" 26 | 27 | # version_list: url=https://ftp.gnu.org/gnu/mpc/ filter=*.tar.gz 28 | 29 | version("1.3.1") { source sha256: "ab642492f5cf882b74aa0cb730cd410a81edcdbec895183ce930e706c1c759b8" } 30 | version("1.2.1") { source sha256: "17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459" } 31 | version("1.1.0") { source sha256: "6985c538143c1208dcb1ac42cedad6ff52e267b47e5f970183a3e75125b43c2e" } 32 | 33 | source url: "https://ftp.gnu.org/gnu/mpc/mpc-#{version}.tar.gz" 34 | internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz", 35 | authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}" 36 | 37 | relative_path "mpc-#{version}" 38 | 39 | build do 40 | env = with_standard_compiler_flags(with_embedded_path) 41 | 42 | configure_command = ["./configure", 43 | "--prefix=#{install_dir}/embedded"] 44 | 45 | command configure_command.join(" "), env: env 46 | make "-j #{workers}", env: env 47 | make "-j #{workers} install", env: env 48 | end 49 | -------------------------------------------------------------------------------- /config/software/mpfr.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2014-2019 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | # expeditor/ignore: deprecated 2022-12 17 | 18 | name "mpfr" 19 | default_version "4.1.0" 20 | 21 | dependency "gmp" 22 | 23 | license "LGPL-3.0-or-later" 24 | license_file "COPYING.LESSER" 25 | 26 | # version_list: url=https://ftp.gnu.org/gnu/mpfr/ filter=*.tar.gz 27 | 28 | version("4.1.0") { source sha256: "3127fe813218f3a1f0adf4e8899de23df33b4cf4b4b3831a5314f78e65ffa2d6" } 29 | version("3.1.6") { source sha256: "569ceb418aa935317a79e93b87eeb3f956cab1a97dfb2f3b5fd8ac2501011d62" } 30 | version("3.1.3") { source sha256: "b87feae279e6da95a0b45eabdb04f3a35422dab0d30113d58a7803c0d73a79dc" } 31 | version("3.1.2") { source sha256: "176043ec07f55cd02e91ee3219db141d87807b322179388413a9523292d2ee85" } 32 | 33 | source url: "https://ftp.gnu.org/gnu/mpfr/mpfr-#{version}.tar.gz" 34 | internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz", 35 | authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}" 36 | 37 | relative_path "mpfr-#{version}" 38 | 39 | build do 40 | env = with_standard_compiler_flags(with_embedded_path) 41 | 42 | configure_command = ["./configure", 43 | "--prefix=#{install_dir}/embedded"] 44 | 45 | command configure_command.join(" "), env: env 46 | make "-j #{workers}", env: env 47 | make "-j #{workers} install", env: env 48 | end 49 | -------------------------------------------------------------------------------- /config/software/mysql2.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2012-2014 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | # 18 | # Enable MySQL support by adding the following to '/etc/chef-server/chef-server.rb': 19 | # 20 | # database_type = 'mysql' 21 | # postgresql['enable'] = false 22 | # mysql['enable'] = true 23 | # mysql['destructive_migrate'] = true 24 | # 25 | # Then run 'chef-server-ctl reconfigure' 26 | # 27 | 28 | versions_to_install = ["0.3.6", "0.3.7"] 29 | 30 | name "mysql2" 31 | default_version versions_to_install.join("-") 32 | 33 | dependency "ruby" 34 | 35 | build do 36 | env = with_standard_compiler_flags(with_embedded_path) 37 | 38 | cache_path = "#{install_dir}/embedded/service/gem/ruby/1.9.1/cache" 39 | 40 | gem "install rake-compiler" \ 41 | " --version '0.8.3'" \ 42 | " --no-document", env: env 43 | 44 | mkdir cache_path 45 | 46 | versions_to_install.each do |version| 47 | gem "fetch mysql2" \ 48 | " --version '#{version}'", env: env, cwd: cache_path 49 | end 50 | end 51 | -------------------------------------------------------------------------------- /config/software/nginx.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2012-2016 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | ## expeditor/ignore: deprecated 2022 03 17 | 18 | name "nginx" 19 | default_version "1.21.4" 20 | 21 | dependency "pcre" 22 | dependency "openssl" 23 | dependency "zlib" 24 | 25 | license "BSD-2-Clause" 26 | license_file "LICENSE" 27 | 28 | source url: "https://nginx.org/download/nginx-#{version}.tar.gz" 29 | internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz", 30 | authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}" 31 | 32 | # versions_list: https://nginx.org/download/ filter=*.tar.gz 33 | version("1.21.4") { source sha256: "d1f72f474e71bcaaf465dcc7e6f7b6a4705e4b1ed95c581af31df697551f3bfe" } 34 | version("1.20.1") { source sha256: "e462e11533d5c30baa05df7652160ff5979591d291736cfa5edb9fd2edb48c49" } 35 | version("1.19.9") { source sha256: "2e35dff06a9826e8aca940e9e8be46b7e4b12c19a48d55bfc2dc28fc9cc7d841" } 36 | version("1.19.8") { source sha256: "308919b1a1359315a8066578472f998f14cb32af8de605a3743acca834348b05" } 37 | 38 | relative_path "nginx-#{version}" 39 | 40 | build do 41 | env = with_standard_compiler_flags(with_embedded_path) 42 | 43 | command "./configure" \ 44 | " --prefix=#{install_dir}/embedded" \ 45 | " --with-http_ssl_module" \ 46 | " --with-http_stub_status_module" \ 47 | " --with-ipv6" \ 48 | " --with-debug" \ 49 | " --with-cc-opt=\"-L#{install_dir}/embedded/lib -I#{install_dir}/embedded/include\"" \ 50 | " --with-ld-opt=-L#{install_dir}/embedded/lib", env: env 51 | 52 | make "-j #{workers}", env: env 53 | make "install", env: env 54 | 55 | # Ensure the logs directory is available on rebuild from git cache 56 | touch "#{install_dir}/embedded/logs/.gitkeep" 57 | end 58 | -------------------------------------------------------------------------------- /config/software/nodejs.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright:: Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | # expeditor/ignore: deprecated 2021-11 17 | 18 | name "nodejs" 19 | 20 | license "MIT" 21 | license_file "LICENSE" 22 | skip_transitive_dependency_licensing true 23 | 24 | default_version "0.10.48" 25 | 26 | dependency "python" 27 | 28 | default_src_url = "https://nodejs.org/dist/v#{version}/node-v#{version}.tar.gz" 29 | 30 | version "12.22.3" do 31 | source url: default_src_url, sha256: "30acec454f26a168afe6d1c55307c5186ef23dba66527cc34e4497d01f91bda4" 32 | end 33 | 34 | version "0.10.48" do 35 | source url: default_src_url, sha256: "27a1765b86bf4ec9833e2f89e8421ba4bc01a326b883f125de2f0b3494bd5549" 36 | end 37 | 38 | relative_path "node-v#{version}" 39 | 40 | build do 41 | env = with_standard_compiler_flags(with_embedded_path) 42 | 43 | config_command = [ 44 | "--prefix=#{install_dir}/embedded", 45 | "--without-dtrace", 46 | ] 47 | 48 | if version.satisfies?(">= 12") 49 | config_command << "--without-node-snapshot" 50 | config_command << "--without-inspector" 51 | config_command << "--without-intl" 52 | end 53 | 54 | configure(*config_command, env: env) 55 | 56 | make "-j #{workers}", env: env 57 | make "install", env: env 58 | end 59 | -------------------------------------------------------------------------------- /config/software/omnibus-ctl.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2012-2015 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | name "omnibus-ctl" 18 | default_version "v0.6.0" 19 | 20 | license "Apache-2.0" 21 | license_file "https://raw.githubusercontent.com/chef/omnibus-ctl/main/LICENSE" 22 | # Even though omnibus-ctl is a gem, it does not have any dependencies. 23 | skip_transitive_dependency_licensing true 24 | 25 | dependency "ruby" 26 | 27 | # versions_list: https://github.com/chef/omnibus-ctl/tags filter=*.tar.gz 28 | source git: "https://github.com/chef/omnibus-ctl.git" 29 | 30 | relative_path "omnibus-ctl" 31 | 32 | build do 33 | env = with_standard_compiler_flags(with_embedded_path) 34 | 35 | # Remove existing built gems in case they exist in the current dir 36 | delete "omnibus-ctl-*.gem" 37 | 38 | gem "build omnibus-ctl.gemspec", env: env 39 | gem "install omnibus-ctl-*.gem --no-document ", env: env 40 | 41 | touch "#{install_dir}/embedded/service/omnibus-ctl/.gitkeep" 42 | end 43 | -------------------------------------------------------------------------------- /config/software/patch.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2015-2018 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | name "patch" 18 | 19 | dependency "config_guess" 20 | 21 | license "GPL-3.0" 22 | license_file "COPYING" 23 | skip_transitive_dependency_licensing true 24 | 25 | default_version "2.7.6" 26 | 27 | # version_list: url=https://ftp.gnu.org/gnu/patch/ filter=*.tar.gz 28 | 29 | version("2.7.6") { source sha256: "8cf86e00ad3aaa6d26aca30640e86b0e3e1f395ed99f189b06d4c9f74bc58a4e" } 30 | version("2.7.5") { source sha256: "7436f5a19f93c3ca83153ce9c5cbe4847e97c5d956e57a220121e741f6e7968f" } 31 | version("2.7") { source sha256: "59c29f56faa0a924827e6a60c6accd6e2900eae5c6aaa922268c717f06a62048" } 32 | 33 | source url: "https://ftp.gnu.org/gnu/patch/patch-#{version}.tar.gz" 34 | internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz", 35 | authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}" 36 | 37 | relative_path "patch-#{version}" 38 | 39 | env = with_standard_compiler_flags(with_embedded_path) 40 | 41 | build do 42 | 43 | update_config_guess(target: "build-aux") 44 | 45 | configure "--disable-xattr", env: env 46 | make "-j #{workers}", env: env 47 | make "-j #{workers} install", env: env 48 | end 49 | -------------------------------------------------------------------------------- /config/software/pcre.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright:: Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | name "pcre" 18 | default_version "8.45" 19 | 20 | license "BSD-2-Clause" 21 | license_file "LICENCE" 22 | skip_transitive_dependency_licensing true 23 | 24 | dependency "libedit" 25 | dependency "ncurses" 26 | dependency "config_guess" 27 | 28 | # version_list: url=https://sourceforge.net/projects/pcre/files/pcre/ filter=*.tar.gz 29 | 30 | version("8.45") { source sha256: "4e6ce03e0336e8b4a3d6c2b70b1c5e18590a5673a98186da90d4f33c23defc09" } 31 | version("8.44") { source sha256: "aecafd4af3bd0f3935721af77b889d9024b2e01d96b58471bd91a3063fb47728" } 32 | version("8.38") { source sha256: "9883e419c336c63b0cb5202b09537c140966d585e4d0da66147dc513da13e629" } 33 | 34 | source url: "https://downloads.sourceforge.net/project/pcre/pcre/#{version}/pcre-#{version}.tar.gz" 35 | internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz", 36 | authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}" 37 | 38 | relative_path "pcre-#{version}" 39 | 40 | build do 41 | env = with_standard_compiler_flags(with_embedded_path) 42 | 43 | update_config_guess 44 | 45 | command "./configure" \ 46 | " --prefix=#{install_dir}/embedded" \ 47 | " --disable-cpp" \ 48 | " --enable-utf" \ 49 | " --enable-unicode-properties" \ 50 | " --enable-pcretest-libedit" \ 51 | "--disable-pcregrep-jit", env: env 52 | 53 | make "-j #{workers}", env: env 54 | make "install", env: env 55 | end 56 | -------------------------------------------------------------------------------- /config/software/perl-extutils-embed.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2014 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | # expeditor/ignore: deprecated 2021-04 17 | 18 | name "perl-extutils-embed" 19 | default_version "1.14" 20 | 21 | dependency "perl" 22 | 23 | source url: "http://search.cpan.org/CPAN/authors/id/D/DO/DOUGM/ExtUtils-Embed-#{version}.tar.gz", 24 | md5: "b2a2c26a18bca3ce69f8a0b1b54a0105" 25 | internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz", 26 | authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}" 27 | relative_path "ExtUtils-Embed-#{version}" 28 | 29 | build do 30 | env = with_standard_compiler_flags(with_embedded_path).merge( 31 | "INSTALL_BASE" => "#{install_dir}/embedded" 32 | ) 33 | 34 | command "#{install_dir}/embedded/bin/perl Makefile.PL", env: env 35 | 36 | make env: env 37 | make "install", env: env 38 | end 39 | -------------------------------------------------------------------------------- /config/software/perl-extutils-makemaker.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2014 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | # expeditor/ignore: deprecated 2021-04 17 | 18 | name "perl-extutils-makemaker" 19 | default_version "6.78" 20 | 21 | dependency "perl" 22 | 23 | version "6.98" do 24 | source md5: "3eb83b59e33159ecc700bf60ac3c357a" 25 | end 26 | version "6.78" do 27 | source md5: "843886bc1060b5e5c619e34029343eba" 28 | end 29 | version "7.10" do 30 | source md5: "2639a21adee5e0a903730c12dcba08ec" 31 | end 32 | 33 | source url: "http://search.cpan.org/CPAN/authors/id/B/BI/BINGOS/ExtUtils-MakeMaker-#{version}.tar.gz" 34 | internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz", 35 | authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}" 36 | relative_path "ExtUtils-MakeMaker-#{version}" 37 | 38 | build do 39 | env = with_standard_compiler_flags(with_embedded_path).merge( 40 | "INSTALL_BASE" => "#{install_dir}/embedded" 41 | ) 42 | 43 | command "#{install_dir}/embedded/bin/perl Makefile.PL", env: env 44 | 45 | make env: env 46 | make "install", env: env 47 | end 48 | -------------------------------------------------------------------------------- /config/software/perl-thread-queue.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2019 Oregon State University 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | # expeditor/ignore: deprecated 2021-04 17 | 18 | name "perl-thread-queue" 19 | default_version "3.13" 20 | 21 | dependency "perl" 22 | 23 | version "3.13" do 24 | source sha256: "6ba3dacddd2fbb66822b4aa1d11a0a5273cd04c825cb3ff31c20d7037cbfdce8" 25 | end 26 | 27 | source url: "http://search.cpan.org/CPAN/authors/id/J/JD/JDHEDDEN/Thread-Queue-#{version}.tar.gz" 28 | internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz", 29 | authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}" 30 | relative_path "Thread-Queue-#{version}" 31 | 32 | build do 33 | env = with_standard_compiler_flags(with_embedded_path).merge( 34 | "INSTALL_BASE" => "#{install_dir}/embedded" 35 | ) 36 | 37 | command "#{install_dir}/embedded/bin/perl Makefile.PL", env: env 38 | 39 | make env: env 40 | make "install", env: env 41 | end 42 | -------------------------------------------------------------------------------- /config/software/perl_pg_driver.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2014 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | name "perl_pg_driver" 18 | default_version "3.16.0" 19 | 20 | dependency "perl" 21 | dependency "cpanminus" 22 | dependency "postgresql" 23 | 24 | license "Artistic" 25 | license_file "README" 26 | license_file "LICENSES/artistic.txt" 27 | 28 | # version_list: url=https://cpan.metacpan.org/authors/id/T/TU/TURNSTEP/ filter=*.tar.gz 29 | 30 | version("3.17.0") { source sha256: "8d900d4c0e749f37218752a6661fb0d3557ab1fccc8dea384cb587c382de219b" } 31 | version("3.16.0") { source sha256: "2c31163d8bdaaf8beaef9c97b8f260432d67a534bc7b69e7265c21cb841432b8" } 32 | version("3.15.1") { source sha256: "13c7543b545c9a5253c86550ccd9204d06fe5f34a7dc51769d3dd665563fc17e" } 33 | version("3.15.0") { source sha256: "69cc19870f9d935f16530be39d0ed60afadc5e560e29c3a17af4498e7e3082d9" } 34 | version("3.14.2") { source sha256: "c973e98458960a78ec54032a71b3840f178418dd7e69d063e462a0f10ec68e4d" } 35 | version("3.5.3") { source sha256: "7e98a9b975256a4733db1c0e974cad5ad5cb821489323e395ed97bd058e0a90e" } 36 | version("3.3.0") { source sha256: "52f43de5b2d916d447d7ed252b127f728b226dc88db57d4fe9712e21d3586ffe" } 37 | 38 | source url: "https://search.cpan.org/CPAN/authors/id/T/TU/TURNSTEP/DBD-Pg-#{version}.tar.gz" 39 | internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz", 40 | authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}" 41 | relative_path "DBD-Pg-#{version}" 42 | 43 | build do 44 | env = with_standard_compiler_flags(with_embedded_path) 45 | 46 | command "cpanm -v --notest .", env: env 47 | end 48 | -------------------------------------------------------------------------------- /config/software/pg-gem.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2014 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | name "pg-gem" 18 | default_version "0.17.1" 19 | 20 | license "BSD-2-Clause" 21 | license_file "https://raw.githubusercontent.com/ged/ruby-pg/master/LICENSE" 22 | license_file "https://raw.githubusercontent.com/ged/ruby-pg/master/BSDL" 23 | # pg gem does not have any dependencies. We only install it from 24 | # rubygems here. 25 | skip_transitive_dependency_licensing true 26 | 27 | dependency "ruby" 28 | 29 | build do 30 | env = with_standard_compiler_flags(with_embedded_path) 31 | 32 | gem "install pg" \ 33 | " --version '#{version}'" \ 34 | " --bindir '#{install_dir}/embedded/bin'" \ 35 | " --no-document", env: env 36 | end 37 | -------------------------------------------------------------------------------- /config/software/pkg-config-lite.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2013-2014 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | name "pkg-config-lite" 18 | default_version "0.28-1" 19 | 20 | license "GPL-2.0" 21 | license_file "COPYING" 22 | skip_transitive_dependency_licensing true 23 | 24 | dependency "config_guess" 25 | 26 | # version_list: url=http://downloads.sourceforge.net/project/pkgconfiglite/#{version}/ filter=*.tar.gz 27 | 28 | version("0.28-1") { source sha256: "21b76ec4e115ee30f9b3077a2506e48e8b837332ed4d30c9776502e69c6a29e5" } 29 | 30 | source url: "https://downloads.sourceforge.net/project/pkgconfiglite/#{version}/pkg-config-lite-#{version}.tar.gz" 31 | internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz", 32 | authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}" 33 | 34 | relative_path "pkg-config-lite-#{version}" 35 | 36 | build do 37 | env = with_standard_compiler_flags(with_embedded_path) 38 | 39 | update_config_guess 40 | 41 | command "./configure" \ 42 | " --prefix=#{install_dir}/embedded" \ 43 | " --disable-host-tool" \ 44 | " --with-pc-path=#{install_dir}/embedded/bin/pkgconfig", env: env 45 | 46 | make "-j #{workers}", env: env 47 | make "-j #{workers} install", env: env 48 | end 49 | -------------------------------------------------------------------------------- /config/software/preparation.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2012-2014 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | # expeditor/ignore: logic only 17 | 18 | name "preparation" 19 | description "the steps required to preprare the build" 20 | default_version "1.0.0" 21 | 22 | license :project_license 23 | skip_transitive_dependency_licensing true 24 | 25 | build do 26 | block do 27 | touch "#{install_dir}/embedded/lib/.gitkeep" 28 | touch "#{install_dir}/embedded/bin/.gitkeep" 29 | touch "#{install_dir}/bin/.gitkeep" 30 | end 31 | end 32 | -------------------------------------------------------------------------------- /config/software/rb-readline.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2012-2016 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | # expeditor/ignore: deprecated 2021-04 17 | 18 | name "rb-readline" 19 | default_version "master" 20 | 21 | license "BSD-3-Clause" 22 | license_file "LICENSE" 23 | skip_transitive_dependency_licensing true 24 | 25 | dependency "ruby" 26 | 27 | source git: "https://github.com/ConnorAtherton/rb-readline.git" 28 | 29 | build do 30 | env = with_embedded_path 31 | 32 | ruby "setup.rb", env: env 33 | end 34 | -------------------------------------------------------------------------------- /config/software/rbnacl-libsodium.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2012-2017 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | # expeditor/ignore: deprecated 2021-04 17 | 18 | name "rbnacl-libsodium" 19 | default_version "1.0.11" 20 | relative_path "rbnacl-libsodium" 21 | 22 | # versions_list: https://github.com/cryptosphere/rbnacl-libsodium/tags filter=*.tar.gz 23 | 24 | source git: "https://github.com/cryptosphere/rbnacl-libsodium.git" 25 | 26 | license "MIT" 27 | license_file "LICENSE" 28 | 29 | dependency "ruby" 30 | 31 | build do 32 | env = with_embedded_path 33 | 34 | bundle "config set --local without development_extras", env: env 35 | bundle "install", env: env 36 | bundle "exec rake gem", env: env 37 | 38 | delete "pkg/*java*" 39 | 40 | gem "install pkg/rbnacl-libsodium-*.gem" \ 41 | " --no-document", env: env 42 | end 43 | -------------------------------------------------------------------------------- /config/software/rbzmq.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2012-2017 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | # expeditor/ignore: deprecated 2021-04 17 | 18 | name "rbzmq" 19 | default_version "master" 20 | source git: "https://github.com/chef/rbzmq.git" 21 | 22 | license "LGPL-3.0" 23 | license_file "LICENSE.txt" 24 | skip_transitive_dependency_licensing true 25 | 26 | dependency "libzmq" 27 | dependency "libsodium" 28 | dependency "ruby" 29 | 30 | build do 31 | env = with_standard_compiler_flags(with_embedded_path) 32 | 33 | gem "build rbzmq.gemspec", env: env 34 | 35 | gem_command = [ 36 | "install rbzmq*.gem", 37 | "--", 38 | "--use-system-libraries", 39 | "--with-zmq-dir==#{install_dir}/embedded", 40 | "--no-doc", 41 | ] 42 | 43 | gem gem_command.join(" "), env: env 44 | end 45 | -------------------------------------------------------------------------------- /config/software/rebar.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2012-2014 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | # expeditor/ignore: no version pinning 17 | 18 | name "rebar" 19 | 20 | # Current version (2.3.0) suffers from a pretty bad bug that breaks tests. 21 | # (see https://github.com/rebar/rebar/pull/279 and https://github.com/rebar/rebar/pull/251) 22 | # Version 2.3.1 Fixes this; we should switch to that if later versions aren't workable. 23 | # Version 2.6.1 includes this fix. 24 | default_version "93621d0d0c98035f79790ffd24beac94581b0758" 25 | 26 | license "Apache-2.0" 27 | license_file "LICENSE" 28 | 29 | version "2.6.0" 30 | 31 | dependency "erlang" 32 | 33 | source git: "https://github.com/rebar/rebar.git" 34 | 35 | relative_path "rebar" 36 | 37 | build do 38 | env = with_standard_compiler_flags(with_embedded_path) 39 | 40 | command "./bootstrap", env: env 41 | copy "#{project_dir}/rebar", "#{install_dir}/embedded/bin/" 42 | end 43 | -------------------------------------------------------------------------------- /config/software/redis-gem.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2014 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | # expeditor/ignore: deprecated 2021-04 17 | 18 | name "redis-gem" 19 | default_version "3.3.3" 20 | 21 | license "MIT" 22 | license_file "https://raw.githubusercontent.com/redis/redis-rb/master/LICENSE" 23 | # redis gem does not have any dependencies. We only install it from 24 | # rubygems here. 25 | skip_transitive_dependency_licensing true 26 | 27 | dependency "ruby" 28 | 29 | build do 30 | env = with_standard_compiler_flags(with_embedded_path) 31 | 32 | gem "install redis" \ 33 | " --version '#{version}'" \ 34 | " --bindir '#{install_dir}/embedded/bin'" \ 35 | " --no-document", env: env 36 | end 37 | -------------------------------------------------------------------------------- /config/software/relx.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2014 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | # expeditor/ignore: deprecated 2021-04 17 | 18 | name "relx" 19 | 20 | # Release tags are available, which you can use via override in 21 | # project config. 22 | default_version "master" 23 | 24 | dependency "erlang" 25 | 26 | # NOTE: requires rebar > 2.2.0 Not sure what the minimum is, but 27 | # 837df640872d6a5d5d75a7308126e2769d7babad of rebar works. 28 | dependency "rebar" 29 | 30 | source git: "https://github.com/erlware/relx.git" 31 | 32 | relative_path "relx" 33 | 34 | build do 35 | env = with_standard_compiler_flags(with_embedded_path) 36 | 37 | make env: env 38 | copy "#{project_dir}/relx", "#{install_dir}/embedded/bin/" 39 | end 40 | -------------------------------------------------------------------------------- /config/software/rsync.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2012-2014 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | # expeditor/ignore: deprecated 2022-05 17 | 18 | name "rsync" 19 | default_version "3.1.1" 20 | 21 | dependency "popt" 22 | 23 | license_file "COPYING" 24 | skip_transitive_dependency_licensing true 25 | 26 | version "3.1.2" do 27 | source md5: "0f758d7e000c0f7f7d3792610fad70cb" 28 | license "GPL-3.0" 29 | license_file "COPYING" 30 | end 31 | 32 | version "3.1.1" do 33 | source md5: "43bd6676f0b404326eee2d63be3cdcfe" 34 | license "GPL-3.0" 35 | end 36 | 37 | version "2.6.9" do 38 | source md5: "996d8d8831dbca17910094e56dcb5942" 39 | license "GPL-2.0" 40 | end 41 | 42 | source url: "https://rsync.samba.org/ftp/rsync/src/rsync-#{version}.tar.gz" 43 | internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz", 44 | authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}" 45 | 46 | relative_path "rsync-#{version}" 47 | 48 | build do 49 | env = with_standard_compiler_flags(with_embedded_path) 50 | 51 | command "./configure" \ 52 | " --prefix=#{install_dir}/embedded" \ 53 | " --disable-iconv", env: env 54 | 55 | make "-j #{workers}", env: env 56 | make "install", env: env 57 | end 58 | -------------------------------------------------------------------------------- /config/software/ruby-windows-devkit-bash.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright:: Copyright (c) 2014-2017, Chef Software Inc. 3 | # License:: Apache License, Version 2.0 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | # 17 | 18 | name "ruby-windows-devkit-bash" 19 | default_version "3.1.23-4-msys-1.0.18" 20 | 21 | license "GPL-3.0" 22 | license_file "http://www.gnu.org/licenses/gpl-3.0.txt" 23 | skip_transitive_dependency_licensing true 24 | 25 | # XXX: this depends on ruby-windows-devkit, but the caller MUST specify that dep, or else the slightly goofy 26 | # library build_order optimizer in omnibus will promote ruby-windows-devkit to being before direct deps of 27 | # the project file which will defeat our current strategy of installing devkit absolutely dead last. 28 | # see: https://github.com/chef/omnibus/blob/2f9687fb1a3d2459b932acb4dcb37f4cb6335f4c/lib/omnibus/library.rb#L64-L77 29 | # 30 | # dependency "ruby-windows-devkit" 31 | source url: "https://github.com/chef/msys-bash/releases/download/bash-#{version}/bash-#{version}-bin.tar.lzma", 32 | md5: "22d5dbbd9bd0b3e0380d7a0e79c3108e" 33 | internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}-#{version}/#{name}-#{version}-bin.tar.lzma", 34 | authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}" 35 | 36 | relative_path "bin" 37 | 38 | build do 39 | # Copy over the required bins into embedded/bin 40 | ["bash.exe", "sh.exe"].each do |exe| 41 | copy "#{exe}", "#{install_dir}/embedded/bin/#{exe}" 42 | end 43 | end 44 | -------------------------------------------------------------------------------- /config/software/rust-uninstall.rb: -------------------------------------------------------------------------------- 1 | # Copyright 2016 Chef Software, Inc. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | # 15 | # expeditor/ignore: deprecated 2022-02 16 | 17 | name "rust-uninstall" 18 | default_version "0.0.1" 19 | 20 | license :project_license 21 | 22 | dependency "rust" 23 | 24 | build do 25 | env = with_standard_compiler_flags(with_embedded_path) 26 | 27 | # Until Omnibus has full support for build depedencies (see chef/omnibus#483) 28 | # we don't want to ship the Rust and Cargo in our final artifact. Luckily 29 | # Rust ships with a nice uninstall script which makes it easy to strip 30 | # everything out. 31 | command "sh #{install_dir}/embedded/lib/rustlib/uninstall.sh", env: env 32 | end 33 | -------------------------------------------------------------------------------- /config/software/sequel-gem.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2012-2014 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | # expeditor/ignore: deprecated 2021-04 17 | 18 | name "sequel-gem" 19 | default_version "4.47.0" 20 | 21 | license "MIT" 22 | license_file "https://raw.githubusercontent.com/jeremyevans/sequel/master/MIT-LICENSE" 23 | # sequel gem does not have any dependencies. We only install it from 24 | # rubygems here. 25 | skip_transitive_dependency_licensing true 26 | 27 | dependency "ruby" 28 | 29 | build do 30 | env = with_standard_compiler_flags(with_embedded_path) 31 | 32 | gem "install sequel" \ 33 | " --version '#{version}'" \ 34 | " --bindir '#{install_dir}/embedded/bin'" \ 35 | " --no-document", env: env 36 | end 37 | -------------------------------------------------------------------------------- /config/software/setuptools.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2013-2014 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | # expeditor/ignore: deprecated 2021-04 17 | 18 | name "setuptools" 19 | default_version "0.7.7" 20 | 21 | license "Python Software Foundation" 22 | license_file "https://raw.githubusercontent.com/pypa/setuptools/master/LICENSE" 23 | skip_transitive_dependency_licensing true 24 | 25 | dependency "python" 26 | 27 | version "0.9.8" do 28 | source md5: "243076241781935f7fcad370195a4291" 29 | end 30 | 31 | version "0.7.7" do 32 | source md5: "0d7bc0e1a34b70a97e706ef74aa7f37f" 33 | end 34 | 35 | version "20.0" do 36 | source md5: "fb22b2474ca037e0b08f3c3b293e02e6" 37 | end 38 | 39 | source url: "https://pypi.python.org/packages/source/s/setuptools/setuptools-#{version}.tar.gz" 40 | 41 | relative_path "setuptools-#{version}" 42 | 43 | build do 44 | env = with_standard_compiler_flags(with_embedded_path) 45 | 46 | command "#{install_dir}/embedded/bin/python setup.py install" \ 47 | " --prefix=#{install_dir}/embedded", env: env 48 | end 49 | -------------------------------------------------------------------------------- /config/software/util-macros.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2014 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | name "util-macros" 18 | default_version "1.19.3" 19 | 20 | # version_list: url=https://www.x.org/releases/individual/util/ filter=util-macros-*.tar.gz 21 | 22 | version("1.19.3") { source sha256: "624bb6c3a4613d18114a7e3849a3d70f2d7af9dc6eabeaba98060d87e3aef35b" } 23 | version("1.19.0") { source sha256: "0d4df51b29023daf2f63aebf3ebc638ea88efedfd560ab5866741ab3f92acaa1" } 24 | version("1.18.0") { source sha256: "cf4ab0e17bfee0f7689cdcff8c7d7f164c9a710f851f91c488f5cd81fac9c0aa" } 25 | 26 | source url: "https://www.x.org/releases/individual/util/util-macros-#{version}.tar.gz" 27 | internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz", 28 | authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}" 29 | 30 | license "MIT" 31 | license_file "COPYING" 32 | skip_transitive_dependency_licensing true 33 | 34 | relative_path "util-macros-#{version}" 35 | 36 | build do 37 | env = with_standard_compiler_flags(with_embedded_path) 38 | 39 | command "./configure" \ 40 | " --prefix=#{install_dir}/embedded", env: env 41 | 42 | make "-j #{workers}", env: env 43 | make "-j #{workers} install", env: env 44 | end 45 | -------------------------------------------------------------------------------- /config/software/version-manifest.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2012-2014 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | # expeditor/ignore: logic only 17 | 18 | name "version-manifest" 19 | description "generates a version manifest file" 20 | default_version "0.0.1" 21 | 22 | license :project_license 23 | skip_transitive_dependency_licensing true 24 | 25 | build do 26 | block do 27 | File.open("#{install_dir}/version-manifest.txt", "w") do |f| 28 | f.puts "#{project.name} #{project.build_version}" 29 | f.puts "" 30 | f.puts Omnibus::Reports.pretty_version_map(project) 31 | end 32 | end 33 | end 34 | -------------------------------------------------------------------------------- /config/software/xproto.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2014 Chef Software, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | name "xproto" 18 | default_version "7.0.31" 19 | 20 | dependency "config_guess" 21 | 22 | # version_list: url=https://www.x.org/releases/individual/proto/ filter=xproto-*.tar.gz 23 | 24 | version("7.0.31") { source sha256: "6d755eaae27b45c5cc75529a12855fed5de5969b367ed05003944cf901ed43c7" } 25 | version("7.0.28") { source sha256: "6cabc8ce3fa2b1a2427871167b62c24d5b08a58bd3e81ed7aaf08f2bf6dbcfed" } 26 | version("7.0.25") { source sha256: "e3dc634103f923a2276289745eb7b702b18cfc885ea4b2382bd35a8cc3d935cb" } 27 | 28 | source url: "https://www.x.org/releases/individual/proto/xproto-#{version}.tar.gz" 29 | internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz", 30 | authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}" 31 | license "MIT" 32 | license_file "COPYING" 33 | skip_transitive_dependency_licensing true 34 | 35 | relative_path "xproto-#{version}" 36 | 37 | build do 38 | env = with_standard_compiler_flags(with_embedded_path) 39 | 40 | update_config_guess 41 | 42 | command "./configure" \ 43 | " --prefix=#{install_dir}/embedded", env: env 44 | 45 | make "-j #{workers}", env: env 46 | make "-j #{workers} install", env: env 47 | end 48 | -------------------------------------------------------------------------------- /config/templates/git/config.mak.erb: -------------------------------------------------------------------------------- 1 | <%- if cc -%> 2 | CC=<%= cc %> 3 | <%- end -%> 4 | <%- if ld -%> 5 | LD=<%= ld %> 6 | <%- end -%> 7 | <%- if cflags -%> 8 | CFLAGS=<%= cflags %> 9 | <%- end -%> 10 | <%- if cppflags -%> 11 | CPPFLAGS=<%= cppflags %> 12 | <%- end -%> 13 | <%- if ldflags -%> 14 | LDFLAGS=<%= ldflags %> 15 | <%- end -%> 16 | <%- if install -%> 17 | INSTALL=<%= install %> 18 | <%- end -%> 19 | <%- if shell_path -%> 20 | SHELL_PATH=<%= shell_path %> 21 | <%- end -%> 22 | CURLDIR=<%= install_dir %>/embedded 23 | EXPATDIR=<%= install_dir %>/embedded 24 | ICONVDIR=<%= install_dir %>/embedded 25 | LIBPCREDIR=<%= install_dir %>/embedded 26 | OPENSSLDIR=<%= install_dir %>/embedded 27 | ZLIB_PATH=<%= install_dir %>/embedded 28 | 29 | <%- config_hash.each_pair do |k, v| -%> 30 | <%= k.to_s %>=<%= v %> 31 | <%- end -%> -------------------------------------------------------------------------------- /config/templates/rubygems/register_devtools.rb.erb: -------------------------------------------------------------------------------- 1 | require 'fileutils' 2 | require 'pathname' 3 | 4 | os_file_path = 'rubygems/defaults/operating_system.rb' 5 | 6 | def registration_snippet(file_path) 7 | relative_paths = <%= paths %>.map do |p| 8 | Pathname.new(p).relative_path_from(Pathname.new(file_path)).to_s 9 | end 10 | 11 | < Chef Software, Inc. 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | # 17 | 18 | PATH=<%= install_dir %>/bin:<%= install_dir %>/embedded/bin:/usr/local/bin:/usr/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin 19 | 20 | ulimit -c 0 21 | ulimit -d unlimited 22 | ulimit -e 0 23 | ulimit -f unlimited 24 | ulimit -i 62793 25 | ulimit -l 64 26 | ulimit -m unlimited 27 | # WARNING: Increasing the global file descriptor limit increases RAM 28 | # consumption on startup dramatically! 29 | ulimit -n 50000 30 | ulimit -q 819200 31 | ulimit -r 0 32 | ulimit -s 10240 33 | ulimit -t unlimited 34 | ulimit -u unlimited 35 | ulimit -v unlimited 36 | ulimit -x unlimited 37 | echo "1000000" > /proc/sys/fs/file-max 38 | 39 | umask 022 40 | 41 | exec env - PATH=$PATH \ 42 | runsvdir -P <%= install_dir %>/service 'log: <%= '.'*395 %>' 43 | -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | builder: 3 | build: . 4 | volumes: 5 | - ./:/omnibus-software 6 | - ./test:/test 7 | working_dir: /test 8 | command: bash --init-file omnibus-build.sh 9 | 10 | # Multiple concurrent "docker-compose run" commands on the same system in the CI pipeline caused intermittent failures 11 | # while creating the network. 12 | # Using "network_mode: bridge" forces compose to use docker's legacy default bridge network instead. 13 | # We considered namespacing the network using COMPOSE_PROJECT_NAME=$BUILDKITE_JOB_ID but using the legacy bridge network 14 | # means we can avoid worrying about any impact and management overhead that multiple networks might create. 15 | network_mode: bridge 16 | -------------------------------------------------------------------------------- /lib/omnibus-software/version.rb: -------------------------------------------------------------------------------- 1 | module OmnibusSoftware 2 | VERSION = File.read(File.join(__dir__, "../../VERSION")).strip.freeze 3 | end 4 | -------------------------------------------------------------------------------- /omnibus-software.gemspec: -------------------------------------------------------------------------------- 1 | $:.push File.expand_path("lib", __dir__) 2 | require "omnibus-software/version" 3 | 4 | Gem::Specification.new do |s| 5 | s.name = "omnibus-software" 6 | s.version = OmnibusSoftware::VERSION 7 | s.authors = ["Chef Software, Inc."] 8 | s.email = ["info@chef.io"] 9 | s.license = "Apache-2.0" 10 | s.homepage = "https://github.com/chef/omnibus-software" 11 | s.summary = "Open Source software for use with Omnibus" 12 | s.description = "Open Source software build descriptions for use with Omnibus" 13 | 14 | # Software definitions in this bundle require at least this version of 15 | # omnibus because of the dsl methods they are using. 16 | s.add_dependency "omnibus", ">= 9.0.0" 17 | if Gem::Version.new(RUBY_VERSION) <= Gem::Version.new("3.1.0") 18 | s.add_dependency "ffi", "< 1.17.0" 19 | elsif Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.3.0") 20 | s.add_dependency "ffi", ">= 1.17.0" 21 | end 22 | 23 | s.files = `git ls-files`.split("\n") 24 | s.require_paths = ["lib"] 25 | end 26 | -------------------------------------------------------------------------------- /test/Gemfile: -------------------------------------------------------------------------------- 1 | source "https://rubygems.org" 2 | 3 | gem "omnibus", github: "chef/omnibus", branch: "main" 4 | gem "omnibus-software", path: "/omnibus-software" 5 | 6 | group :development do 7 | gem "pry" 8 | gem "pry-byebug" 9 | gem "pry-stack_explorer" 10 | end 11 | -------------------------------------------------------------------------------- /test/config/projects/test.rb: -------------------------------------------------------------------------------- 1 | name "test" 2 | maintainer "Chef Software, Inc." 3 | homepage "https://www.chef.io" 4 | 5 | install_dir "#{default_root}/#{name}" 6 | 7 | build_version Omnibus::BuildVersion.semver 8 | build_iteration 1 9 | 10 | dependency ENV["SOFTWARE"] 11 | 12 | if ENV["VERSION"] 13 | override ENV["SOFTWARE"].to_sym, version: ENV["VERSION"] 14 | end -------------------------------------------------------------------------------- /test/generate_steps.rb: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | require "open3" 4 | 5 | # Get the branch to compare against (rename default to 'main' once migration occurs) 6 | BRANCH = ENV["BUILDKITE_PULL_REQUEST_BASE_BRANCH"] || "main" 7 | 8 | # Read in all the versions that are specified by SOFTWARE 9 | def version(version = nil) 10 | $versions << version 11 | end 12 | 13 | def default_version(version = nil) 14 | $versions << version 15 | end 16 | 17 | # Get a list of all the config/software definitions that have been added or modified 18 | _, status = Open3.capture2e("git config --global --add safe.directory /workdir") 19 | exit 1 if status != 0 20 | _, status = Open3.capture2e("git fetch origin #{BRANCH}") 21 | exit 1 if status != 0 22 | stdout, status = Open3.capture2("git diff --name-status origin/#{BRANCH}...HEAD config/software | awk 'match($1, \"A\"){print $2; next} match($1, \"M\"){print $2}'") 23 | exit 1 if status != 0 24 | 25 | files = stdout.lines.compact.uniq.map(&:chomp) 26 | exit 0 if files.empty? 27 | 28 | puts "steps:" 29 | files.each do |file| 30 | software = File.basename(file, ".rb") 31 | $versions = [] 32 | 33 | File.readlines(file).each do |line| 34 | # match if line starts with "default_version" or "version" 35 | if line.match(/^\s*(default_)?version/) 36 | # remove the beginning of any ruby block if it exists 37 | line.sub!(/\s*(do|{).*/, "") 38 | 39 | # rubocop:disable Security/Eval 40 | eval(line) 41 | end 42 | end 43 | 44 | # Skip health check when it is not relevant 45 | health_check_skip_list = %w{ cacerts xproto util-macros } 46 | deprecated_skip_list = %w{ git-windows cmake ruby-msys2-devkit } 47 | 48 | $versions.compact.uniq.each do |version| 49 | next if deprecated_skip_list.include?(software) 50 | 51 | skip_health_check = "" 52 | if health_check_skip_list.include?(software) 53 | skip_health_check = "-e SKIP_HEALTH_CHECK=1" 54 | end 55 | puts <<~EOH 56 | - label: "test-build (#{software} #{version})" 57 | command: docker-compose run --rm -e SOFTWARE=#{software} -e VERSION=#{version} #{skip_health_check} -e CI builder 58 | timeout_in_minutes: 30 59 | expeditor: 60 | executor: 61 | linux: 62 | privileged: true 63 | EOH 64 | end 65 | end -------------------------------------------------------------------------------- /test/omnibus-build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # shellcheck disable=SC1090 4 | . ~/.bashrc 5 | 6 | echo "--- Setting Omnibus build environment variables" 7 | 8 | export PATH="/opt/omnibus-toolchain/bin:${PATH}" 9 | echo "PATH=${PATH}" 10 | 11 | if [[ -f "/opt/omnibus-toolchain/embedded/ssl/certs/cacert.pem" ]]; then 12 | export SSL_CERT_FILE="/opt/omnibus-toolchain/embedded/ssl/certs/cacert.pem" 13 | echo "SSL_CERT_FILE=${SSL_CERT_FILE}" 14 | fi 15 | 16 | if [[ $SOFTWARE == "libxslt" ]]; then 17 | echo "--- Installing libxml2-dev for libxslt" 18 | apt-get install -y libxml2-dev 19 | fi 20 | 21 | ################################################################### 22 | # Query tool versions 23 | ################################################################### 24 | echo "" 25 | echo "" 26 | echo "========================================" 27 | echo "= Tool Versions" 28 | echo "========================================" 29 | echo "" 30 | echo "Bash.........$(bash --version | head -1)" 31 | echo "Bundler......$(bundle --version | head -1)" 32 | echo "GCC..........$(gcc --version | head -1)" 33 | echo "Git..........$(git --version | head -1)" 34 | echo "Make.........$(make --version | head -1)" 35 | echo "Ruby.........$(ruby --version | head -1)" 36 | echo "RubyGems.....$(gem --version | head -1)" 37 | echo "" 38 | echo "========================================" 39 | 40 | rm -f Gemfile.lock 41 | rm -rf .bundle 42 | 43 | if [[ $CI == true ]]; then 44 | DEBUG=1 bundle config set --local without development 45 | fi 46 | 47 | echo "--- Running bundle install" 48 | 49 | DEBUG=1 bundle install 50 | 51 | if [[ $CI == true ]]; then 52 | echo "--- Building" 53 | bundle exec omnibus build test 54 | exit $? 55 | fi 56 | -------------------------------------------------------------------------------- /test/omnibus.rb: -------------------------------------------------------------------------------- 1 | # 2 | # This file is used to configure the harmony project. It contains 3 | # some minimal configuration examples for working with Omnibus. For a full list 4 | # of configurable options, please see the documentation for +omnibus/config.rb+. 5 | # 6 | 7 | # Build internally 8 | # ------------------------------ 9 | # By default, Omnibus uses system folders (like +/var+ and +/opt+) to build and 10 | # cache components. If you would to build everything internally, you can 11 | # uncomment the following options. This will prevent the need for root 12 | # permissions in most cases. You will also need to update the harmony 13 | # project configuration to build at +./local/omnibus/build+ instead of 14 | # +/opt/harmony+ 15 | # 16 | # Uncomment this line to change the default base directory to "local" 17 | # ------------------------------------------------------------------- 18 | # base_dir './local' 19 | # 20 | # Alternatively you can tune the individual values 21 | # ------------------------------------------------ 22 | # cache_dir './local/omnibus/cache' 23 | # git_cache_dir './local/omnibus/cache/git_cache' 24 | # source_dir './local/omnibus/src' 25 | # build_dir './local/omnibus/build' 26 | # package_dir './local/omnibus/pkg' 27 | # package_tmp './local/omnibus/pkg-tmp' 28 | 29 | # Windows architecture defaults - set to x86 unless otherwise specified. 30 | # ------------------------------ 31 | env_omnibus_windows_arch = (ENV["OMNIBUS_WINDOWS_ARCH"] || "").downcase 32 | env_omnibus_windows_arch = :x64 unless %w{x86 x64}.include?(env_omnibus_windows_arch) 33 | 34 | windows_arch env_omnibus_windows_arch 35 | 36 | # Disable git caching 37 | # ------------------------------ 38 | use_git_caching false 39 | 40 | # Enable S3 asset caching 41 | # ------------------------------ 42 | use_s3_caching false 43 | 44 | # Customize compiler bits 45 | # ------------------------------ 46 | # solaris_compiler 'gcc' 47 | 48 | # Do not retry builds 49 | # ------------------------------ 50 | build_retries 0 51 | 52 | if ENV["SKIP_HEALTH_CHECK"] 53 | health_check false 54 | end 55 | 56 | # Load additional software 57 | # ------------------------------ 58 | # software_gems ['omnibus-software', 'my-company-software'] 59 | # local_software_dirs ['/path/to/local/software'] 60 | --------------------------------------------------------------------------------