## mini_portile changelog ### 2.8.8 / 2024-11-14 #### Improved - Raise an exception with a clear error message when `xzcat` is needed but is not installed. (#152) @flavorjones ### 2.8.7 / 2024-05-31 #### Added - When setting the C compiler through the `MiniPortile` constructor, the preferred keyword argument is now `:cc_command`. The original `:gcc_command` is still supported. (#144 by @flavorjones) - Add support for extracting xz-compressed tarballs on OpenBSD. (#141 by @postmodern) - Add OpenBSD support to the experimental method `MakeMakefile#mkmf_config`. (#141 by @flavorjones) #### Changed - `MiniPortileCMake` now detects the C and C++ compiler the same way `MiniPortile` does: by examining environment variables, then using kwargs, then looking in RbConfig (in that order). (#144 by @flavorjones) - GPG file verification error messages are captured in the raised exception. Previously these errors went to `stderr`. (#145 by @flavorjones) ### 2.8.6 / 2024-04-14 #### Added - When using CMake on FreeBSD, default to clang's "cc" and "c++" compilers. (#139 by @mudge) ### 2.8.5 / 2023-10-22 #### Added - New methods `#lib_path` and `#include_path` which point at the installed directories under `ports`. (by @flavorjones) - Add config param for CMAKE_BUILD_TYPE, which now defaults to `Release`. (#136 by @Watson1978) #### Experimental Introduce experimental support for `MiniPortile#mkmf_config` which sets up MakeMakefile variables to properly link against the recipe. This should make it easier for C extensions to package third-party libraries. (by @flavorjones) - With no arguments, will set up just `$INCFLAGS`, `$libs`, and `$LIBPATH`. - Optionally, if provided a pkg-config file, will use that config to more precisely set `$INCFLAGS`, `$libs`, `$LIBPATH`, and `$CFLAGS`/`$CXXFLAGS`. - Optionally, if provided the name of a static archive, will rewrite linker flags to ensure correct linkage. Note that the behavior may change slightly before official support is announced. Please comment on [#118](https://github.com/flavorjones/mini_portile/issues/118) if you have feedback. ### 2.8.4 / 2023-07-18 - cmake: set CMAKE compile flags to configure cross-compilation similarly to `autotools` `--host` flag: `SYSTEM_NAME`, `SYSTEM_PROCESSOR`, `C_COMPILER`, and `CXX_COMPILER`. [#130] (Thanks, @stanhu!) ### 2.8.3 / 2023-07-18 #### Fixed - cmake: only use MSYS/NMake generators when available. [#129] (Thanks, @stanhu!) ### 2.8.2 / 2023-04-30 #### Fixed - Ensure that the `source_directory` option will work when given a Windows path to an autoconf directory. [#126] ### 2.8.1 / 2022-12-24 #### Fixed - Support applying patches via `git apply` even when the working directory resembles a git directory. [#119] (Thanks, @h0tw1r3!) ### 2.8.0 / 2022-02-20 #### Added - Support xz-compressed archives (recognized by an `.xz` file extension). - When downloading a source archive, default open_timeout and read_timeout to 10 seconds, but allow configuration via open_timeout and read_timeout config parameters. ### 2.7.1 / 2021-10-20 #### Packaging A test artifact that has been included in the gem was being flagged by some users' security scanners because it wasn't a real tarball. That artifact has been updated to be a real tarball. [#108] ### 2.7.0 / 2021-08-31 #### Added The commands used for "make", "compile", and "cmake" are configurable via keyword arguments. [#107] (Thanks, @cosmo0920!) ### 2.6.1 / 2021-05-31 #### Dependencies Make `net-ftp` an optional dependency, since requiring it as a hard dependency in v2.5.2 caused warnings to be emitted by Ruby 2.7 and earlier. A warning message is emitted if FTP functionality is called and `net-ftp` isn't available; this should only happen in Ruby 3.1 and later. ### 2.5.3 / 2021-05-31 #### Dependencies Make `net-ftp` an optional dependency, since requiring it as a hard dependency in v2.5.2 caused warnings to be emitted by Ruby 2.7 and earlier. A warning message is emitted if FTP functionality is called and `net-ftp` isn't available; this should only happen in Ruby 3.1 and later. ### 2.6.0 / 2021-05-31 ### Added Recipes may build against a local directory by specifying `source_directory` instead of `files`. In particular, this may be useful for debugging problems with the upstream dependency (e.g., use `git bisect` in a local clone) or for continuous integration with upstream HEAD. ### 2.5.2 / 2021-05-28 #### Dependencies Add `net-ftp` as an explicit dependency to accommodate the upcoming Ruby 3.1 changes that move this and other gems out of the "default" gem set and into the "bundled" gem set. See https://bugs.ruby-lang.org/issues/17873 [#101] ### 2.5.1 / 2021-04-28 #### Dependencies This release ends support for ruby < 2.3.0. If you're on 2.2.x or earlier, we strongly suggest that you find the time to upgrade, because [official support for Ruby 2.2 ended on 2018-03-31](https://www.ruby-lang.org/en/news/2018/06/20/support-of-ruby-2-2-has-ended/). #### Enhancements * `MiniPortile.execute` now takes an optional `:env` hash, which is merged into the environment variables for the subprocess. Likely this is only useful for specialized use cases. [#99] * Experimental support for cmake-based projects extended to Windows. (Thanks, @larskanis!) ### 2.5.0 / 2020-02-24 #### Enhancements * When verifying GPG signatures, remove all imported pubkeys from keyring [#90] (Thanks, @hanazuki!) ### 2.4.0 / 2018-12-02 #### Enhancements * Skip progress report when Content-Length is unavailable. [#85] (Thanks, @eagletmt!) ### 2.3.0 / 2017-09-13 #### Enhancements * Verify checksums of files at extraction time (in addition to at download time). (#56) * Clarify error message if a `tar` command can't be found. (#81) ### 2.2.0 / 2017-06-04 #### Enhancements * Remove MD5 hashing of configure options, not avialbale in FIPS mode. (#78) * Add experimental support for cmake-based projects. * Retry on HTTP failures during downloads. [#63] (Thanks, @jtarchie and @jvshahid!) * Support Ruby 2.4 frozen string literals. * Support applying patches for users with misconfigured git worktree. [#69] * Support gpg signature verification of download resources. ### 2.1.0 / 2016-01-06 #### Enhancements * Add support for `file:` protocol for tarballs #### Bugfixes * Raise exception on unsupported URI protocols * Ignore git whitespace config when patching (Thanks, @e2!) (#67) ### 2.0.0 / 2015-11-30 Many thanks to @larskanis, @knu, and @kirikak2, who all contributed code, ideas, or both to this release. Note that the 0.7.0.rc* series was not released as 0.7.0 final, and instead became 2.0.0 due to backwards-incompatible behavioral changes which can appear because rubygems doesn't enforce loading the declared dependency version at installation-time (only run-time). If you use MiniPortile in an `extconf.rb` file, please make sure you're setting a gem version constraint before `require "mini_portile2"` . Note also that 2.0.0 doesn't include the backwards-compatible "escaped string" behavior from 0.7.0.rc3. #### Enhancements * In patch task, use git(1) or patch(1), whichever is available. * Append outputs to patch.log instead of clobbering it for every patch command. * Take `configure_options` literally without running a subshell. This changes allows for embedded spaces in a path, among other things. Please unescape `configure_options` where you have been doing it yourself. * Print last 20 lines of the given log file, for convenience. * Allow SHA1, SHA256 and MD5 hash verification of downloads #### Bugfixes * Fix issue when proxy username/password use escaped characters. * Fix use of https and ftp proxy. ### 0.7.0.rc4 / 2015-08-24 * Updated tests for Windows. No functional change. Final release candidate? ### 0.7.0.rc3 / 2015-08-24 * Restore backwards-compatible behavior with respect to escaped strings. ### 0.7.0.rc2 / 2015-08-24 * Restore support for Ruby 1.9.2 * Add Ruby 2.0.0 and Ruby 2.1.x to Appveyor suite ### 0.7.0.rc1 / 2015-08-24 Many thanks to @larskanis, @knu, and @kirikak2, who all contributed code, ideas, or both to this release. #### Enhancements * In patch task, use git(1) or patch(1), whichever is available. * Append outputs to patch.log instead of clobbering it for every patch command. * Take `configure_options` literally without running a subshell. This changes allows for embedded spaces in a path, among other things. Please unescape `configure_options` where you have been doing it yourself. * Print last 20 lines of the given log file, for convenience. * Allow SHA1, SHA256 and MD5 hash verification of downloads #### Bugfixes * Fix issue when proxy username/password use escaped characters. * Fix use of https and ftp proxy. ### 0.6.2 / 2014-12-30 * Updated gemspec, license and README to reflect new maintainer. ### 0.6.1 / 2014-08-03 * Enhancements: * Expand path to logfile to easier debugging on failures. Pull #33 [marvin2k] ### 0.6.0 / 2014-04-18 * Enhancements: * Add default cert store and custom certs from `SSL_CERT_FILE` if present. This increases compatibility with Ruby 1.8.7. * Bugfixes: * Specify Accept-Encoding to make sure a raw file content is downloaded. Pull #30. [knu] * Internal: * Improve examples and use them as test harness. ### 0.5.3 / 2014-03-24 * Bugfixes: * Shell escape paths in tar command. Pull #29. [quickshiftin] * Support older versions of tar that cannot auto-detect the compression type. Pull #27. Closes #21. [b-dean] * Try RbConfig's CC before fall back to 'gcc'. Ref #28. ### 0.5.2 / 2013-10-23 * Bugfixes: * Change tar detection order to support NetBSD 'gtar'. Closes #24 * Trick 'git-apply' when applying patches on nested Git checkouts. [larskanis] * Respect ENV's MAKE before fallback to 'make'. [larskanis] * Respect ENV's CC variable before fallback to 'gcc'. * Avoid non-ASCII output of GCC cause host detection issues. Closes #22 ### 0.5.1 / 2013-07-07 * Bugfixes: * Detect tar executable without shelling out. [jtimberman] ### 0.5.0 / 2012-11-17 * Enhancements: * Allow patching extracted files using `git apply`. [metaskills] ### 0.4.1 / 2012-10-24 * Bugfixes: * Syntax to process FTp binary chunks differs between Ruby 1.8.7 and 1.9.x ### 0.4.0 / 2012-10-24 * Enhancements: * Allow fetching of FTP URLs along HTTP ones. [metaskills] ### 0.3.0 / 2012-03-23 * Enhancements: * Use `gcc -v` to determine original host (platform) instead of Ruby one. * Deprecations: * Dropped support for Rubies older than 1.8.7 ### 0.2.2 / 2011-04-11 * Minor enhancements: * Use LDFLAGS when activating recipes for cross-compilation. Closes #6 * Bugfixes: * Remove memoization of *_path helpers. Closes #7 ### 0.2.1 / 2011-04-06 * Minor enhancements: * Provide MiniPortile#path to obtain full path to installation directory. Closes GH-5 ### 0.2.0 / 2011-04-05 * Enhancements: * Improve tar detection * Improve and refactor configure_options * Detect configure_options changes. Closes GH-1 * Add recipe examples * Bugfixes: * MiniPortile#target can be changed now. Closes GH-2 * Always redirect tar output properly ### 0.1.0 / 2011-03-08 * Initial release. Welcome to this world!