Skip to content

Latest commit

 

History

History
355 lines (197 loc) · 11 KB

CHANGELOG.md

File metadata and controls

355 lines (197 loc) · 11 KB

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 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.

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!