Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Linux support #13

Closed
wants to merge 32 commits into from
Closed

Add Linux support #13

wants to merge 32 commits into from

Conversation

ivoflipse
Copy link
Contributor

See #12

@conda-forge-linter
Copy link

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@@ -0,0 +1,6 @@
cmake -G "Unix Makefiles"
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Korijn
Copy link
Contributor

Korijn commented Aug 30, 2016

I think you want to add toolchain:

meta.yaml:

requirements:
  build:
    - toolchain

And at the top of build.sh:

# FIXME: This is a hack to make sure the environment is activated.
# The reason this is required is due to the conda-build issue
# mentioned below.
#
# https://github.com/conda/conda-build/issues/910
#
source activate "${CONDA_DEFAULT_ENV}"

@ivoflipse
Copy link
Contributor Author

It doesn't seem to want to build for Unix just yet :\ Doesn't it like my selectors or something?

@ivoflipse
Copy link
Contributor Author

Now it ran, but something else seems missing:

bash: line 1: ./ci_support/run_docker_build.sh: No such file or directory

@ivoflipse
Copy link
Contributor Author

So I added the run_docker_build.sh and now CircleCI no longer runs :\

@ocefpaf
Copy link
Member

ocefpaf commented Aug 30, 2016

@ivoflipse I can take a look at this for you later today but I am a little bit swamped right now. If you do not solve it by then feel free to ping me later today or tomorrow.

@ivoflipse
Copy link
Contributor Author

No problem @ocefpaf! Any help is appreciated

@Korijn
Copy link
Contributor

Korijn commented Aug 30, 2016

If you change skip, you need to run conda-smithy rerender locally (add conda-forge to your channels before doing so) to update the CI configurations.

@ivoflipse
Copy link
Contributor Author

I had just installed conda-smithy and set up all the necessary tokens.
But I'm getting the following error:

C:\Users\ivofl\Projects\miktex-feedstock>conda-smithy rerender
Using Anaconda API: https://api.anaconda.org
Fetching package metadata ..........Could not find URL: https://repo.continuum.io/pkgs/msys2/linux-64/

I'm probably doing something else wrong though

@Korijn
Copy link
Contributor

Korijn commented Aug 30, 2016

I didn't need the tokens to rerender, just the channel in conda config.

@ivoflipse
Copy link
Contributor Author

One step forward, two steps back:

bash: line 1: ./ci_support/run_docker_build.sh: Permission denied

@Korijn
Copy link
Contributor

Korijn commented Aug 30, 2016

Just tried it, conda-smithy rerender is broken for me as well. Same error message as in #13 (comment)

@ivoflipse
Copy link
Contributor Author

ivoflipse commented Aug 31, 2016

The Github repo (and the source distribution) contain a more detailed list of dependencies:

Minimum OS requirements

  • Debian 9 "Stretch" amd64

C/C++

  • C++ compiler (The minimum required standard version is C++14.)

Build system

  • CMake (The minimum required version is 3.5.2.)
  • pkg-config

Build utilities

  • bison
  • dos2unix
  • flex
  • fop (This is needed to build the documentation.)
  • ImageMagick (This is needed to build the documentation.)
  • Python 2.7
  • xsltproc (This is needed to build the documentation.)

3rd party libs

  • botan development files
  • bzip2 development files
  • libcairo2 development files
  • expat development files
  • freetype2 development files
  • libgd development files
  • libgraphite2 development files
  • libharfbuzz development files
  • libhunspell development files
  • icu development files
  • libjpeg library development files
  • libcurl development files
  • liblog4cxx development files
  • liblzma development files
  • libmpfr development files
  • libmspack development files
  • libpng development files
  • libpopt development files
  • libpoppler-qt5 development files
  • libpoppler-private development files
  • libpotrace development files
  • Qt 5 base development files (The minimum required version is 5.5.1.)
  • Qt 5 script development files
  • Qt 5 tools development files
  • liburiparser development files
  • Zlib development support files
  • zzip development support files

We're skipping all Qt stuff, so those can get dropped (I hope)

After adding all names I could find to the yum_requirements.txt, I get the following as missing:

  • No package liburiparser-devel available.
  • No package liburiparser available.
  • No package xsltproc available.
  • No package botan available.
  • No package libbotan available.
  • No package libmspack available.
  • No package libpopt available.
  • No package libpotrace available.
  • No package zziplib-devel available.
  • No package zziplib available.
  • No package libgraphite2 available.
  • No package libhunspell available.
  • No package liblog4cxx-devel available.

@ivoflipse
Copy link
Contributor Author

While I tried to add a lot of the dependencies (and there are a lot...) to the yum_requirements.txt it seems they are not found or I'm doing something else wrong

@@ -0,0 +1,16 @@
liburiparser-devel
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there something wrong with this format perhaps? Since it only seems to install the following packages:

Installing:
 ImageMagick                  x86_64  6.7.2.7-5.el6_8            updates  1.9 M
 dos2unix                     x86_64  3.1-37.el6                 base      16 k
 fop                          x86_64  0.95-4.4.el6               base     2.6 M
 libxslt                      x86_64  1.1.26-2.el6_3.1           base     452 k

Copy link
Contributor

@Korijn Korijn Aug 31, 2016

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, you need to rerender everytime you change the file. See https://github.com/conda-forge/miktex-feedstock/pull/13/files#r76951445

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, you need to rerender everytime you change the file.

Yep. I also recommend you to get the docker image and test the build locally so you can iterate quicker.

docker pull condaforge/linux-anvil   # Downloads the image.
docker run -it --rm -v $(pwd):/home/ condaforge/linux-anvil /bin/sh  # Starts an interactive session.

That way you can yum install/uninstall things and build until you get a combination that works.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @ocefpaf I'm inside the Docker container right now, so that should indeed prove helpful in the future.

However, several of the requirements don't seem to be available through yum. I downloaded the filelist of one of the repo's (mirror.cj2.nl) my machine is connected to and in their filelist some dependencies are available, but only for version 7.2

  • uriparser
  • libmspack
  • zziplib
  • graphite2
  • log4cxx

And the following don't yet seem available at all:

  • xsltproc (though we might have libxslt for that)
  • botan
  • potrace

Copy link
Member

@ocefpaf ocefpaf Aug 31, 2016

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Welcome to the naming nightmare. Things might exist but with a different name or they are parts of a package with a different name.

You will need a lot yum search to sort that out. Sorry...

And we will need to package what does not exist.

# "recipe/yum_requirements.txt" file. After updating that file,
# run "conda smithy rerender" and this line be updated
# automatically.
yum install -y ImageMagick dos2unix fop libxslt
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ivoflipse this is updated by rerender. Alternatively you can edit it by hand...

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Alternatively you can edit it by hand...

Please don't 😄

The feedstock rerendering will be using the yum req file and not this so any modification you do by hand will be removed at the first rerender.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well the rerendering doesn't seem to work on Windows, at least on my machine. But I've done my best to keep both in sync

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good to know! We need to report that in conda-smithy's issue tracker. Any error message? Or it just does not render the file?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ocefpaf made an issue for it:

conda-forge/conda-smithy#281

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@ivoflipse
Copy link
Contributor Author

@ivoflipse
Copy link
Contributor Author

I'm not continuing with this PR so closing it

@ivoflipse ivoflipse closed this Aug 14, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants