Procenv 0.46 - now with more platform goodness


I have just released procenv version 0.46. Although this is a very minor release for the existing platforms (essentially 1 bug fix), this release now introduces support for a new platform...

Darwin

Yup - OS X now joins the ranks of supported platforms.

Although adding support for Darwin was made significantly easier as a result of the recent internal restructure of the procenv code, it did present a challenge: I don't own any Apple hardware. I could have borrowed a Macbook, but instead I decided to see this as a challenge:

  • Could I port procenv to Darwin without actually having a local Apple system?
 Well, you've just read the answer, but how did I do this?

Stage 1: Docker


Whilst surfing around I came across this interesting docker image:


It provides a Darwin toolchain that I could run under Linux. It didn't take very long to follow my own instructions on porting procenv to a new platform. But although I ended up with a binary, I couldn't actually run it, partly because Darwin uses a different binary file format to Linux: rather than ELF, it uses the Mach-O format.



Stage 2: Travis

The final piece of the puzzle for me was solved by Travis. I'd read the very good documentation on their site, but had initially assumed that you could only build Objective-C based projects on OSX with Travis. But a quick test proved my assumption to be incorrect: it didn't take much more than adding "osx" to the os list and "clang" to the compiler list in procenv's .travis.yml to have procenv building and running (it runs itself as part of its build) on OSX under Travis!

Essentially, the following YAML snippet from procenv's .travis.yml did most of the work:

language: c
compiler:
  - gcc
  - clang
os:
  - linux
  - osx



All that remained was to install the build-time dependencies to the same file with this additional snippet:

before_install:
  - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update; fi
  - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install expat check perl; fi


(Note that it seems Travis is rather picky about before_install - all code must be on a single line, hence the rather awkward-to-read "if; then ....; fi" tests).


Summary


Although I've never personally run procenv under OSX, I have got a good degree of confidence that it does actually work.

That said, it would be useful if someone could independently verify this claim on a real system!) Feel free to raise bugs, send code (or even Apple hardware :-) my way!



Comments

  1. For any printer model that you use we have the 123.hp.com/setup for the setup.Connect all the required cables. Select the option wireless from the wireless network settings and you can proceed with the software download. It's simple navigate to the respective webpage and type the required data. Select the wireless setup wizard and try answering all the instructions of the wizard.
    Make a note of the support number and dial it right away for more updates @ +1-844-876-5110

    ReplyDelete
  2. As drivers are available for Windows and Mac version, identify and analyze the operating system version
    Mac
    If your operating system version is Mac, use the software update tools such as driver easy
    Install the tool and you will get an update if the compatible software's are available
    Check if the automatic software update settings are available. If so you can use it to carry on with the software update
    For HP envy 5014 Setup instructions, driver download speak to our customer support team at the earliest.

    ReplyDelete
  3. Nice Blog Post Thanks for sharing this.

    MagicJack uses the internet connection for allowing you to make calls on this device. The best part of this device is that you can get customer support service on phone.


    How to activate magicjack.com?
    How To Set Up magicJack Go?
    How to install Magicjack Go
    www magicjack tech helpline number
    magicjackcom support phone number
    Magicjackcare.com phone number

    ReplyDelete

Post a Comment

Popular posts from this blog

Byobu Bling with Unicode Custom Indicators

Upstart User Sessions in Ubuntu Raring