wavebitscientific / datetime-fortran

Date and time manipulation for modern Fortran
MIT License
137 stars 51 forks source link

Homebrew packaging #24

Closed blippy closed 8 years ago

blippy commented 8 years ago

In thread https://github.com/milancurcic/datetime-fortran/pull/22#issuecomment-175207961

@zeekman said: "@blippy I agree, but I am just talking about what is needed for Homebrew to accept the "formula". It needs to have a test do block that will compile code, link it against diatomite-fortran and run it to verify it all went well... I'll dig in the src/tests directory, and find something there."

and: "@milancurcic and @blippy: I've got the Homebrew formula all set, including the test do block etc. All I'm waiting on now is for @milancurcic to mint a release that includes configure.sh in the tarball. @blippy also, one more question for you: Will pkg-config always be a build dependency, or just when configure.sh is missing? (Right now I am testing the formula installing the HEAD (i.e. github master) and listing automake and autoconf and pkg-config as build dependencies, but I wonder if I'll need pkg-config as a normal build dep"

zbeekman commented 8 years ago

In thread #22 (comment)

@zeekman said: "@blippy I agree, but I am just talking about what is needed for Homebrew to accept the "formula". It needs to have a test do block that will compile code, link it against diatomite-fortran and run it to verify it all went well... I'll dig in the src/tests directory, and find something there."

diatomite diatomite <-- thanks autocorrect....

BTW, I have this completely solved now

and: "@milancurcic and @blippy: I've got the Homebrew formula all set, including the test do block etc. All I'm waiting on now is for @milancurcic to mint a release that includes configure.sh in the tarball.

Yes, I could add autoconf, automake and pkg-config as build deps all the time, but packaging configure.sh in the release tarball would be preferable.

@blippy also, one more question for you: Will pkg-config always be a build dependency, or just when configure.sh is missing? (Right now I am testing the formula installing the HEAD (i.e. github master) and listing automake and autoconf and pkg-config as build dependencies, but I wonder if I'll need pkg-config as a normal build dep"

I still am curious about this... I guess I could try to test it myself. Any thoughts about whether after autoreconf -i you uninstall (or move out of your path etc.) pkg-config if datetime-fortran will compile and install?

zbeekman commented 8 years ago

I would appreciate it if you guys could test if pkg-config is a build dep, in the event configure.sh is present. My testing seems to indicate the answer is no.

If this is true, I'm just waiting on a new release including configure.sh in the tarball. (Please also include the tag/version in the tarball that gets uploaded as a release asset.)

Here is the latest gist: https://gist.github.com/0fd245c175925b9d6bd8

blippy commented 8 years ago

@zbeekman When we fix the archiving issues, autoconf and automake should be unneeded by packagers. configure will not be required.

I'm not sure about pkg-config. I /think/ that it should not be needed.

zbeekman commented 8 years ago

yes, right now, autoconf, automake and pkg-config are listed as build deps when installing from github/master (HEAD in homebrew speak) otherwise they are not needed if installing from a versioned/packaged release.

milancurcic commented 8 years ago

@zbeekman @blippy Guys, thank you for getting all these balls rolling. I'm trying to meet some deadlines so Izaak I promise I will do that release/asset thing tomorrow at the latest.

zbeekman commented 8 years ago

yes, sorry, take your time, I'm not trying to rush you. I should be attending to some other matters now too.

blippy commented 8 years ago

@milancurcic No rush. I need a little time to think how we're going to get the packaging sorted.

blippy commented 8 years ago

I'm glad that this project is proving popular on Homebrew, even though I don't own a Mac (I used to, though). Gfortran's date/time standard facilities seems a bit lacking, so by rights, this project should be useful to a lot of people :)

szaghi commented 8 years ago

datetime-fortran rocks! :muscle:

blippy commented 8 years ago

@zbeekman said "I still am curious about this... I guess I could try to test it myself. Any thoughts about whether after autoreconf -i you uninstall (or move out of your path etc.) pkg-config if datetime-fortran will compile and install?"

I'm not sure. In Arch Linux, for example, pkg-config is a core package, so uninstalling it isn't an option for me.

blippy commented 8 years ago

@zbeekman Actually, it may be possible to make pkg-config an optional part of the buid process. Perhaps it is best to wait until @milancurcic does another release which includes "configure", and then we can see what works and what doesn't, and take it from there.

zbeekman commented 8 years ago

yup, AFAICT we're all set regarding pkg-config. I did brew install --verbose --interactive datetime-fortran and then from the interactive shell after autoreconf -ivf I did brew unlink pkg-configand continued on with ./configure.sh --prefix=... && make install and everything seems to work swimmingly. This suggests that pkg-config is not a build dep when configure.sh is packaged with the tarball.

milancurcic commented 8 years ago

@zbeekman I finally got around to doing this, see here:

https://github.com/milancurcic/datetime-fortran/releases/tag/v1.4.1

Are we good to go with homebrew packaging?

Thanks a lot!!

zbeekman commented 8 years ago

probably, I've been swamped, and am using a loaner laptop from work at the moment, so I've fallen behind on a lot of stuff... I'll try to see where things stand RE Homebrew later tonight or tomorrow.

zbeekman commented 8 years ago

(My personal laptop had to be sent in for a replacement logic board...) :-(

zbeekman commented 8 years ago

one last comment: It would be great to get #25 sorted out too, before submitting the home-brew formula. I can take a stab at it when I have time if @blippy doesn't beat me to it.

zbeekman commented 8 years ago

PR submitted

zbeekman commented 8 years ago

PR accepted :tada: :balloon:

zbeekman commented 8 years ago

If you want to install via Homebrew:

  1. Get Homebrew
  2. $ brew update
  3. $ brew install datetime-fortran