Re: [Nix-dev] mxe on NixOS

2015-07-27 Thread Luca Bruno
On 27/07/2015 07:36, Andrew Kelley wrote:
> mxe (M Cross Environment) is a way to cross compile for Windows. It's
> a pretty great project. 
>
> There's one hitch when using it on NixOS. I guess it expects
> /usr/share/aclocal/pkg.m4 to exist for some reason. I don't completely
> understand it and I'm still pretty new to NixOS. I was hoping to get
> some more experienced people to maybe chime in and point out what MXE
> could do to not break on NixOS.
>
> Here's the upstream
> issue: https://github.com/mxe/mxe/issues/723#issuecomment-125044881
>
> Any ideas?
You are trying to build something outside of a nix build environment.
Instead of calling make ecc. like you do on every other distro, in Nix
things are very different. You should write a .nix file describing how
the package should build and build it. It will be easier.

Also 99% of the times errors like that are not an upstream issue but
your own issue on nixos.

Best regards,
___
nix-dev mailing list
nix-dev@lists.science.uu.nl
http://lists.science.uu.nl/mailman/listinfo/nix-dev


Re: [Nix-dev] mxe on NixOS

2015-07-27 Thread Andrew Kelley
On Mon, Jul 27, 2015 at 1:36 AM Luca Bruno  wrote:

> On 27/07/2015 07:36, Andrew Kelley wrote:
>
> mxe (M Cross Environment) is a way to cross compile for Windows. It's a
> pretty great project.
>
>  There's one hitch when using it on NixOS. I guess it expects
> /usr/share/aclocal/pkg.m4 to exist for some reason. I don't completely
> understand it and I'm still pretty new to NixOS. I was hoping to get some
> more experienced people to maybe chime in and point out what MXE could do
> to not break on NixOS.
>
>  Here's the upstream issue:
> https://github.com/mxe/mxe/issues/723#issuecomment-125044881
>
>  Any ideas?
>
> You are trying to build something outside of a nix build environment.
> Instead of calling make ecc. like you do on every other distro, in Nix
> things are very different. You should write a .nix file describing how the
> package should build and build it. It will be easier.
>
> Also 99% of the times errors like that are not an upstream issue but your
> own issue on nixos.
>

Thanks for the reply.

I think I did not succeed in explaining what MXE is and how it works. It
would not make sense to create a nix expression for mxe; one does not build
mxe like a normal application. Instead, one uses mxe to build for Windows.
So compiling software with mxe is more like running a normal application at
runtime rather than building a package.

I think one of two things is the case:

1. The MXE project depends on some hard coded path, and I'd like to try to
find out what that is and send a patch to MXE which would use the proper
way to detect the path instead.
2. autotools depends on some hard coded path, and I'd like to see if it's
possible to fix that bug on NixOS with a patch.
___
nix-dev mailing list
nix-dev@lists.science.uu.nl
http://lists.science.uu.nl/mailman/listinfo/nix-dev


Re: [Nix-dev] mxe on NixOS

2015-07-27 Thread James Cook
>> You are trying to build something outside of a nix build environment.
>> Instead of calling make ecc. like you do on every other distro, in Nix
>> things are very different. You should write a .nix file describing how the
>> package should build and build it. It will be easier.
>>
>> Also 99% of the times errors like that are not an upstream issue but your
>> own issue on nixos.

I find I'm usually able to build things on NixOS just by manually
running configure, make &c. as long as I install all the dependencies
with nix-env. Sometimes I have to pass some flag to a package's
configure script to tell it where to find C headers or something like
that.

Of course under many circumstances it's nicer to have nix build things for you.

> Thanks for the reply.
>
> I think I did not succeed in explaining what MXE is and how it works. It
> would not make sense to create a nix expression for mxe; one does not build
> mxe like a normal application. Instead, one uses mxe to build for Windows.
> So compiling software with mxe is more like running a normal application at
> runtime rather than building a package.

Luca's suggestion may still be workable: if I understand right, you
could write a nix expression for each Windows library you want. You
would probably want to set the source to be mxe's source, and override
the build stage so it runs "make glib" or whatever. Personally, I'm
guessing you'd run into the same problem, but it could be worth a try.

(Of course, you might not want to use mxe that way, but it could still
be useful for figuring out what the problem is.)

James
___
nix-dev mailing list
nix-dev@lists.science.uu.nl
http://lists.science.uu.nl/mailman/listinfo/nix-dev


Re: [Nix-dev] mxe on NixOS

2015-08-16 Thread James Cook
To perhaps simplify the problem, does anyone know how to build glib on
a NixOS system the old-fashioned way, without using nix? If I just run
./autogen.sh in a fresh glib checkout, I get a similar error to the
one Andrew is getting.

A parallel question: Andrew, are you familiar enough with nixpkgs to
try writing an nix expression that unpacks mxe and tells it to build
glib? That might be another approach, though I think it would be nice
if users had the option of not doing it that way.

$ ./autogen.sh
You don't have gtk-doc installed, and thus won't be able to generate
the documentation.
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force -I m4macros ${ACLOCAL_FLAGS}
autoreconf: configure.ac: tracing
autoreconf: configure.ac: not using Libtool
autoreconf: running:
/nix/store/prmn46fajbj2ymcw43aqrdfbii1bj8bz-autoconf-2.69/bin/autoconf
--force
configure.ac:88: error: possibly undefined macro: AC_DEFINE
  If this token and others are legitimate, please use m4_pattern_allow.
  See the Autoconf documentation.
autoreconf: 
/nix/store/prmn46fajbj2ymcw43aqrdfbii1bj8bz-autoconf-2.69/bin/autoconf
failed with exit status: 1

On 27 July 2015 at 09:19, James Cook  wrote:
>>> You are trying to build something outside of a nix build environment.
>>> Instead of calling make ecc. like you do on every other distro, in Nix
>>> things are very different. You should write a .nix file describing how the
>>> package should build and build it. It will be easier.
>>>
>>> Also 99% of the times errors like that are not an upstream issue but your
>>> own issue on nixos.
>
> I find I'm usually able to build things on NixOS just by manually
> running configure, make &c. as long as I install all the dependencies
> with nix-env. Sometimes I have to pass some flag to a package's
> configure script to tell it where to find C headers or something like
> that.
>
> Of course under many circumstances it's nicer to have nix build things for 
> you.
>
>> Thanks for the reply.
>>
>> I think I did not succeed in explaining what MXE is and how it works. It
>> would not make sense to create a nix expression for mxe; one does not build
>> mxe like a normal application. Instead, one uses mxe to build for Windows.
>> So compiling software with mxe is more like running a normal application at
>> runtime rather than building a package.
>
> Luca's suggestion may still be workable: if I understand right, you
> could write a nix expression for each Windows library you want. You
> would probably want to set the source to be mxe's source, and override
> the build stage so it runs "make glib" or whatever. Personally, I'm
> guessing you'd run into the same problem, but it could be worth a try.
>
> (Of course, you might not want to use mxe that way, but it could still
> be useful for figuring out what the problem is.)
>
> James
___
nix-dev mailing list
nix-dev@lists.science.uu.nl
http://lists.science.uu.nl/mailman/listinfo/nix-dev


Re: [Nix-dev] mxe on NixOS

2015-08-16 Thread James Cook
(Note there's a bit of conversation at the upstream issue Andrew
linked to; one person claims the autotools are looking for
/usr/share/aclocal/pkg.m4, although for Andrew aclocal --print-ac-dir
shows a path under /nix/store/...)

On 16 August 2015 at 00:55, James Cook  wrote:
> To perhaps simplify the problem, does anyone know how to build glib on
> a NixOS system the old-fashioned way, without using nix? If I just run
> ./autogen.sh in a fresh glib checkout, I get a similar error to the
> one Andrew is getting.
>
> A parallel question: Andrew, are you familiar enough with nixpkgs to
> try writing an nix expression that unpacks mxe and tells it to build
> glib? That might be another approach, though I think it would be nice
> if users had the option of not doing it that way.
>
> $ ./autogen.sh
> You don't have gtk-doc installed, and thus won't be able to generate
> the documentation.
> autoreconf: Entering directory `.'
> autoreconf: configure.ac: not using Gettext
> autoreconf: running: aclocal --force -I m4macros ${ACLOCAL_FLAGS}
> autoreconf: configure.ac: tracing
> autoreconf: configure.ac: not using Libtool
> autoreconf: running:
> /nix/store/prmn46fajbj2ymcw43aqrdfbii1bj8bz-autoconf-2.69/bin/autoconf
> --force
> configure.ac:88: error: possibly undefined macro: AC_DEFINE
>   If this token and others are legitimate, please use m4_pattern_allow.
>   See the Autoconf documentation.
> autoreconf: 
> /nix/store/prmn46fajbj2ymcw43aqrdfbii1bj8bz-autoconf-2.69/bin/autoconf
> failed with exit status: 1
>
> On 27 July 2015 at 09:19, James Cook  wrote:
 You are trying to build something outside of a nix build environment.
 Instead of calling make ecc. like you do on every other distro, in Nix
 things are very different. You should write a .nix file describing how the
 package should build and build it. It will be easier.

 Also 99% of the times errors like that are not an upstream issue but your
 own issue on nixos.
>>
>> I find I'm usually able to build things on NixOS just by manually
>> running configure, make &c. as long as I install all the dependencies
>> with nix-env. Sometimes I have to pass some flag to a package's
>> configure script to tell it where to find C headers or something like
>> that.
>>
>> Of course under many circumstances it's nicer to have nix build things for 
>> you.
>>
>>> Thanks for the reply.
>>>
>>> I think I did not succeed in explaining what MXE is and how it works. It
>>> would not make sense to create a nix expression for mxe; one does not build
>>> mxe like a normal application. Instead, one uses mxe to build for Windows.
>>> So compiling software with mxe is more like running a normal application at
>>> runtime rather than building a package.
>>
>> Luca's suggestion may still be workable: if I understand right, you
>> could write a nix expression for each Windows library you want. You
>> would probably want to set the source to be mxe's source, and override
>> the build stage so it runs "make glib" or whatever. Personally, I'm
>> guessing you'd run into the same problem, but it could be worth a try.
>>
>> (Of course, you might not want to use mxe that way, but it could still
>> be useful for figuring out what the problem is.)
>>
>> James
___
nix-dev mailing list
nix-dev@lists.science.uu.nl
http://lists.science.uu.nl/mailman/listinfo/nix-dev


Re: [Nix-dev] mxe on NixOS

2015-08-16 Thread Luca Bruno
On Sunday, August 16, 2015, James Cook  wrote:

> To perhaps simplify the problem, does anyone know how to build glib on
> a NixOS system the old-fashioned way, without using nix? If I just run
> ./autogen.sh in a fresh glib checkout, I get a similar error to the
> one Andrew is getting.
>
> A parallel question: Andrew, are you familiar enough with nixpkgs to
> try writing an nix expression that unpacks mxe and tells it to build
> glib? That might be another approach, though I think it would be nice
> if users had the option of not doing it that way.
>
> $ ./autogen.sh
> You don't have gtk-doc installed, and thus won't be able to generate
> the documentation.
> autoreconf: Entering directory `.'
> autoreconf: configure.ac: not using Gettext
> autoreconf: running: aclocal --force -I m4macros ${ACLOCAL_FLAGS}
> autoreconf: configure.ac: tracing
> autoreconf: configure.ac: not using Libtool
> autoreconf: running:
> /nix/store/prmn46fajbj2ymcw43aqrdfbii1bj8bz-autoconf-2.69/bin/autoconf
> --force
> configure.ac:88: error: possibly undefined macro: AC_DEFINE
>   If this token and others are legitimate, please use m4_pattern_allow.
>   See the Autoconf documentation.
> autoreconf:
> /nix/store/prmn46fajbj2ymcw43aqrdfbii1bj8bz-autoconf-2.69/bin/autoconf
> failed with exit status: 1


You need pkgconfig in your env.


-- 
NixOS Linux 
___
nix-dev mailing list
nix-dev@lists.science.uu.nl
http://lists.science.uu.nl/mailman/listinfo/nix-dev


Re: [Nix-dev] mxe on NixOS

2015-08-16 Thread James Cook
pkg-config is in my environment.

If it means anything, I see the same error if I run ./autogen.sh
inside nix-shell -A glib (still using my manually-cloned glib).

James

On 16 August 2015 at 01:41, Luca Bruno  wrote:
>
>
> On Sunday, August 16, 2015, James Cook  wrote:
>>
>> To perhaps simplify the problem, does anyone know how to build glib on
>> a NixOS system the old-fashioned way, without using nix? If I just run
>> ./autogen.sh in a fresh glib checkout, I get a similar error to the
>> one Andrew is getting.
>>
>> A parallel question: Andrew, are you familiar enough with nixpkgs to
>> try writing an nix expression that unpacks mxe and tells it to build
>> glib? That might be another approach, though I think it would be nice
>> if users had the option of not doing it that way.
>>
>> $ ./autogen.sh
>> You don't have gtk-doc installed, and thus won't be able to generate
>> the documentation.
>> autoreconf: Entering directory `.'
>> autoreconf: configure.ac: not using Gettext
>> autoreconf: running: aclocal --force -I m4macros ${ACLOCAL_FLAGS}
>> autoreconf: configure.ac: tracing
>> autoreconf: configure.ac: not using Libtool
>> autoreconf: running:
>> /nix/store/prmn46fajbj2ymcw43aqrdfbii1bj8bz-autoconf-2.69/bin/autoconf
>> --force
>> configure.ac:88: error: possibly undefined macro: AC_DEFINE
>>   If this token and others are legitimate, please use
>> m4_pattern_allow.
>>   See the Autoconf documentation.
>> autoreconf:
>> /nix/store/prmn46fajbj2ymcw43aqrdfbii1bj8bz-autoconf-2.69/bin/autoconf
>> failed with exit status: 1
>
>
> You need pkgconfig in your env.
>
>
> --
> NixOS Linux
>
___
nix-dev mailing list
nix-dev@lists.science.uu.nl
http://lists.science.uu.nl/mailman/listinfo/nix-dev


Re: [Nix-dev] mxe on NixOS

2015-08-17 Thread Luca Bruno
Using nix-shell -A glib is wrong if you are going to use autogen.sh,
because autogen.sh is used to build from git not from tarball. So the glib
nix expression does not have neither autoconf nor automake in the
buildInputs for this reason.

Put autoconf and automake in the buildInputs of the glib nix expression,
then it should work.

On Mon, Aug 17, 2015 at 6:45 AM, James Cook  wrote:

> pkg-config is in my environment.
>
> If it means anything, I see the same error if I run ./autogen.sh
> inside nix-shell -A glib (still using my manually-cloned glib).
>
> James
>
> On 16 August 2015 at 01:41, Luca Bruno  wrote:
> >
> >
> > On Sunday, August 16, 2015, James Cook  wrote:
> >>
> >> To perhaps simplify the problem, does anyone know how to build glib on
> >> a NixOS system the old-fashioned way, without using nix? If I just run
> >> ./autogen.sh in a fresh glib checkout, I get a similar error to the
> >> one Andrew is getting.
> >>
> >> A parallel question: Andrew, are you familiar enough with nixpkgs to
> >> try writing an nix expression that unpacks mxe and tells it to build
> >> glib? That might be another approach, though I think it would be nice
> >> if users had the option of not doing it that way.
> >>
> >> $ ./autogen.sh
> >> You don't have gtk-doc installed, and thus won't be able to generate
> >> the documentation.
> >> autoreconf: Entering directory `.'
> >> autoreconf: configure.ac: not using Gettext
> >> autoreconf: running: aclocal --force -I m4macros ${ACLOCAL_FLAGS}
> >> autoreconf: configure.ac: tracing
> >> autoreconf: configure.ac: not using Libtool
> >> autoreconf: running:
> >> /nix/store/prmn46fajbj2ymcw43aqrdfbii1bj8bz-autoconf-2.69/bin/autoconf
> >> --force
> >> configure.ac:88: error: possibly undefined macro: AC_DEFINE
> >>   If this token and others are legitimate, please use
> >> m4_pattern_allow.
> >>   See the Autoconf documentation.
> >> autoreconf:
> >> /nix/store/prmn46fajbj2ymcw43aqrdfbii1bj8bz-autoconf-2.69/bin/autoconf
> >> failed with exit status: 1
> >
> >
> > You need pkgconfig in your env.
> >
> >
> > --
> > NixOS Linux
> >
>



-- 
NixOS Linux 
___
nix-dev mailing list
nix-dev@lists.science.uu.nl
http://lists.science.uu.nl/mailman/listinfo/nix-dev


Re: [Nix-dev] mxe on NixOS

2015-08-17 Thread James Cook
Thanks. Adding autoconf, automake and libtool to buildInputs for glib
and running nix-shell -A glib put be in an environment where I can
successfully run autogen.sh.

Any idea why it only works in a nix-shell instance? I have autoconf,
automake, libtool installed via nix-env.

(Andrew, are you still hoping to get this working?)

James


On 17 August 2015 at 02:07, Luca Bruno  wrote:
> Using nix-shell -A glib is wrong if you are going to use autogen.sh, because
> autogen.sh is used to build from git not from tarball. So the glib nix
> expression does not have neither autoconf nor automake in the buildInputs
> for this reason.
>
> Put autoconf and automake in the buildInputs of the glib nix expression,
> then it should work.
>
> On Mon, Aug 17, 2015 at 6:45 AM, James Cook  wrote:
>>
>> pkg-config is in my environment.
>>
>> If it means anything, I see the same error if I run ./autogen.sh
>> inside nix-shell -A glib (still using my manually-cloned glib).
>>
>> James
>>
>> On 16 August 2015 at 01:41, Luca Bruno  wrote:
>> >
>> >
>> > On Sunday, August 16, 2015, James Cook  wrote:
>> >>
>> >> To perhaps simplify the problem, does anyone know how to build glib on
>> >> a NixOS system the old-fashioned way, without using nix? If I just run
>> >> ./autogen.sh in a fresh glib checkout, I get a similar error to the
>> >> one Andrew is getting.
>> >>
>> >> A parallel question: Andrew, are you familiar enough with nixpkgs to
>> >> try writing an nix expression that unpacks mxe and tells it to build
>> >> glib? That might be another approach, though I think it would be nice
>> >> if users had the option of not doing it that way.
>> >>
>> >> $ ./autogen.sh
>> >> You don't have gtk-doc installed, and thus won't be able to generate
>> >> the documentation.
>> >> autoreconf: Entering directory `.'
>> >> autoreconf: configure.ac: not using Gettext
>> >> autoreconf: running: aclocal --force -I m4macros ${ACLOCAL_FLAGS}
>> >> autoreconf: configure.ac: tracing
>> >> autoreconf: configure.ac: not using Libtool
>> >> autoreconf: running:
>> >> /nix/store/prmn46fajbj2ymcw43aqrdfbii1bj8bz-autoconf-2.69/bin/autoconf
>> >> --force
>> >> configure.ac:88: error: possibly undefined macro: AC_DEFINE
>> >>   If this token and others are legitimate, please use
>> >> m4_pattern_allow.
>> >>   See the Autoconf documentation.
>> >> autoreconf:
>> >> /nix/store/prmn46fajbj2ymcw43aqrdfbii1bj8bz-autoconf-2.69/bin/autoconf
>> >> failed with exit status: 1
>> >
>> >
>> > You need pkgconfig in your env.
>> >
>> >
>> > --
>> > NixOS Linux
>> >
>
>
>
>
> --
> NixOS Linux
___
nix-dev mailing list
nix-dev@lists.science.uu.nl
http://lists.science.uu.nl/mailman/listinfo/nix-dev


Re: [Nix-dev] mxe on NixOS

2015-08-17 Thread Andrew Kelley
On Mon, Aug 17, 2015 at 10:01 PM James Cook  wrote:

> Thanks. Adding autoconf, automake and libtool to buildInputs for glib
> and running nix-shell -A glib put be in an environment where I can
> successfully run autogen.sh.
>
> Any idea why it only works in a nix-shell instance? I have autoconf,
> automake, libtool installed via nix-env.
>
> (Andrew, are you still hoping to get this working?)
>

Yes I am.

My current strategy is this .nix file:

with import  {}; {
  mxeEnv = stdenv.mkDerivation {
name = "mxe";
buildInputs = [
  autoconf
  automake
  gnumake
  bison
  cmake
  flex
  gettext
  gperf
  intltool
  libtool
  openssl
  ruby
  scons
  unzip
  pkgconfig
  python
  wget
];
  };
}

Then I use `nix-shell mxe.nix` and attempt to `make glib`, and I get the
issue I originally reported.

Am I understanding correctly that you are doing something slightly
different and successfully able to build glib with mxe?



>
> James
>
>
> On 17 August 2015 at 02:07, Luca Bruno  wrote:
> > Using nix-shell -A glib is wrong if you are going to use autogen.sh,
> because
> > autogen.sh is used to build from git not from tarball. So the glib nix
> > expression does not have neither autoconf nor automake in the buildInputs
> > for this reason.
> >
> > Put autoconf and automake in the buildInputs of the glib nix expression,
> > then it should work.
> >
> > On Mon, Aug 17, 2015 at 6:45 AM, James Cook 
> wrote:
> >>
> >> pkg-config is in my environment.
> >>
> >> If it means anything, I see the same error if I run ./autogen.sh
> >> inside nix-shell -A glib (still using my manually-cloned glib).
> >>
> >> James
> >>
> >> On 16 August 2015 at 01:41, Luca Bruno  wrote:
> >> >
> >> >
> >> > On Sunday, August 16, 2015, James Cook 
> wrote:
> >> >>
> >> >> To perhaps simplify the problem, does anyone know how to build glib
> on
> >> >> a NixOS system the old-fashioned way, without using nix? If I just
> run
> >> >> ./autogen.sh in a fresh glib checkout, I get a similar error to the
> >> >> one Andrew is getting.
> >> >>
> >> >> A parallel question: Andrew, are you familiar enough with nixpkgs to
> >> >> try writing an nix expression that unpacks mxe and tells it to build
> >> >> glib? That might be another approach, though I think it would be nice
> >> >> if users had the option of not doing it that way.
>

I'm not familiar enough to do so currently but I'm willing to learn. I do
agree with you that it would be nice if users had the option of not doing
it this way.


> >> >>
> >> >> $ ./autogen.sh
> >> >> You don't have gtk-doc installed, and thus won't be able to generate
> >> >> the documentation.
> >> >> autoreconf: Entering directory `.'
> >> >> autoreconf: configure.ac: not using Gettext
> >> >> autoreconf: running: aclocal --force -I m4macros ${ACLOCAL_FLAGS}
> >> >> autoreconf: configure.ac: tracing
> >> >> autoreconf: configure.ac: not using Libtool
> >> >> autoreconf: running:
> >> >>
> /nix/store/prmn46fajbj2ymcw43aqrdfbii1bj8bz-autoconf-2.69/bin/autoconf
> >> >> --force
> >> >> configure.ac:88: error: possibly undefined macro: AC_DEFINE
> >> >>   If this token and others are legitimate, please use
> >> >> m4_pattern_allow.
> >> >>   See the Autoconf documentation.
> >> >> autoreconf:
> >> >>
> /nix/store/prmn46fajbj2ymcw43aqrdfbii1bj8bz-autoconf-2.69/bin/autoconf
> >> >> failed with exit status: 1
> >> >
> >> >
> >> > You need pkgconfig in your env.
> >> >
> >> >
> >> > --
> >> > NixOS Linux
> >> >
> >
> >
> >
> >
> > --
> > NixOS Linux
>
___
nix-dev mailing list
nix-dev@lists.science.uu.nl
http://lists.science.uu.nl/mailman/listinfo/nix-dev


Re: [Nix-dev] mxe on NixOS

2015-08-17 Thread James Cook
>> Thanks. Adding autoconf, automake and libtool to buildInputs for glib
>> and running nix-shell -A glib put be in an environment where I can
>> successfully run autogen.sh.
>>
>> Any idea why it only works in a nix-shell instance? I have autoconf,
>> automake, libtool installed via nix-env.
>>
>> (Andrew, are you still hoping to get this working?)
>
>
> Yes I am.
>
> My current strategy is this .nix file:
>
> with import  {}; {
>   mxeEnv = stdenv.mkDerivation {
> name = "mxe";
> buildInputs = [
>   autoconf
>   automake
>   gnumake
>   bison
>   cmake
>   flex
>   gettext
>   gperf
>   intltool
>   libtool
>   openssl
>   ruby
>   scons
>   unzip
>   pkgconfig
>   python
>   wget
> ];
>   };
> }
>
> Then I use `nix-shell mxe.nix` and attempt to `make glib`, and I get the
> issue I originally reported.
>
> Am I understanding correctly that you are doing something slightly different
> and successfully able to build glib with mxe?

No, I'm not using mxe at all, and I've only tried running autogen.sh.

Unless someone chimes in and points out why building glib outside
nix-shell isn't working, a couple of ideas if you haven't already
tried them:

* Try starting with the glib derivation: add autoconf, automake and
libtool to pkgs/development/libraries/glib/default.nix and use
nix-shell -A glib.

* With that method, can you build vanilla, non-mxe glib?
(https://github.com/GNOME/glib) If not, we must be doing something
different...

* If you can successfully build ordinary glib that way, but can't
build mxe glib, it might be time to take it back to the mxe people.

James
___
nix-dev mailing list
nix-dev@lists.science.uu.nl
http://lists.science.uu.nl/mailman/listinfo/nix-dev


Re: [Nix-dev] mxe on NixOS

2015-08-17 Thread Andrew Kelley
On Mon, Aug 17, 2015 at 10:13 PM, James Cook  wrote:

> No, I'm not using mxe at all, and I've only tried running autogen.sh.
>
> Unless someone chimes in and points out why building glib outside
> nix-shell isn't working, a couple of ideas if you haven't already
> tried them:
>
> * Try starting with the glib derivation: add autoconf, automake and
> libtool to pkgs/development/libraries/glib/default.nix and use
> nix-shell -A glib.
>

I forked nixpkgs and then did this modification:

diff --git a/pkgs/development/libraries/glib/default.nix
b/pkgs/development/libraries/glib/default.nix
index fb9c361..ad2eba4 100644
--- a/pkgs/development/libraries/glib/default.nix
+++ b/pkgs/development/libraries/glib/default.nix
@@ -1,5 +1,6 @@
 { stdenv, fetchurl, pkgconfig, gettext, perl, python
 , libiconv, libintlOrEmpty, zlib, libffi, pcre, libelf
+, autoconf, automake, libtool

 # this is just for tests (not in closure of any regular package)
 , coreutils, dbus_daemon, libxml2, tzdata, desktop_file_utils,
shared_mime_info, doCheck ? false
@@ -55,7 +56,7 @@ stdenv.mkDerivation rec {

   setupHook = ./setup-hook.sh;

-  buildInputs = [ libelf ]
+  buildInputs = [ libelf autoconf automake libtool ]
 ++ optionals doCheck [ tzdata libxml2 desktop_file_utils
shared_mime_info ];

   nativeBuildInputs = [ pkgconfig gettext perl python ];


Then I tried `NIX_PATH=nixpkgs=/home/andy/dev/nixpkgs nix-shell -A glib`
but it did not need to recompile glib. Not sure what's going on with that.

Then I tried `nix-build -A glib` which as I understand uses the current
directory (which was /home/andy/dev/nixpkgs) and that did trigger a build
of glib, which succeeded.


>
> * With that method, can you build vanilla, non-mxe glib?
> (https://github.com/GNOME/glib) If not, we must be doing something
> different...
>

Do you mean building it from source using ./autogen.sh as you did earlier?

I tried that just now and it worked fine. I used this for nix-shell:

with import  {}; {
  glibEnv = stdenv.mkDerivation {
name = "glib";
buildInputs = [
  gnome.gtk_doc
  autoconf
  automake
  gnumake
  bison
  cmake
  flex
  gettext
  gperf
  intltool
  libtool
  pkgconfig
  openssl
  ruby
  scons
  unzip
  python
  wget
  zlib
  libffi
];
  };
}

The extra packages are packages that are in the mxe nix-shell environment;
I thought I'd try to keep the environments close to see what would happen.


>
> * If you can successfully build ordinary glib that way, but can't
> build mxe glib, it might be time to take it back to the mxe people.
>

OK so it sounds like maybe this is an mxe issue after all?


>
> James
>
___
nix-dev mailing list
nix-dev@lists.science.uu.nl
http://lists.science.uu.nl/mailman/listinfo/nix-dev


Re: [Nix-dev] mxe on NixOS

2015-08-18 Thread Luca Bruno
You are doing assuming things wrong.

First of all, you are not supposed to be able to build glib by installing
things with nix-env. Either nix-build or nix-shell.

Then don't set NIX_PATH for nix-shell, rather call nix-shell /path/nixpkgs
-A glib.

On Tuesday, August 18, 2015, Andrew Kelley  wrote:

> On Mon, Aug 17, 2015 at 10:13 PM, James Cook  > wrote:
>
>> No, I'm not using mxe at all, and I've only tried running autogen.sh.
>>
>> Unless someone chimes in and points out why building glib outside
>> nix-shell isn't working, a couple of ideas if you haven't already
>> tried them:
>>
>> * Try starting with the glib derivation: add autoconf, automake and
>> libtool to pkgs/development/libraries/glib/default.nix and use
>> nix-shell -A glib.
>>
>
> I forked nixpkgs and then did this modification:
>
> diff --git a/pkgs/development/libraries/glib/default.nix
> b/pkgs/development/libraries/glib/default.nix
> index fb9c361..ad2eba4 100644
> --- a/pkgs/development/libraries/glib/default.nix
> +++ b/pkgs/development/libraries/glib/default.nix
> @@ -1,5 +1,6 @@
>  { stdenv, fetchurl, pkgconfig, gettext, perl, python
>  , libiconv, libintlOrEmpty, zlib, libffi, pcre, libelf
> +, autoconf, automake, libtool
>
>  # this is just for tests (not in closure of any regular package)
>  , coreutils, dbus_daemon, libxml2, tzdata, desktop_file_utils,
> shared_mime_info, doCheck ? false
> @@ -55,7 +56,7 @@ stdenv.mkDerivation rec {
>
>setupHook = ./setup-hook.sh;
>
> -  buildInputs = [ libelf ]
> +  buildInputs = [ libelf autoconf automake libtool ]
>  ++ optionals doCheck [ tzdata libxml2 desktop_file_utils
> shared_mime_info ];
>
>nativeBuildInputs = [ pkgconfig gettext perl python ];
>
>
> Then I tried `NIX_PATH=nixpkgs=/home/andy/dev/nixpkgs nix-shell -A glib`
> but it did not need to recompile glib. Not sure what's going on with that.
>
> Then I tried `nix-build -A glib` which as I understand uses the current
> directory (which was /home/andy/dev/nixpkgs) and that did trigger a build
> of glib, which succeeded.
>
>
>>
>> * With that method, can you build vanilla, non-mxe glib?
>> (https://github.com/GNOME/glib) If not, we must be doing something
>> different...
>>
>
> Do you mean building it from source using ./autogen.sh as you did earlier?
>
> I tried that just now and it worked fine. I used this for nix-shell:
>
> with import  {}; {
>   glibEnv = stdenv.mkDerivation {
> name = "glib";
> buildInputs = [
>   gnome.gtk_doc
>   autoconf
>   automake
>   gnumake
>   bison
>   cmake
>   flex
>   gettext
>   gperf
>   intltool
>   libtool
>   pkgconfig
>   openssl
>   ruby
>   scons
>   unzip
>   python
>   wget
>   zlib
>   libffi
> ];
>   };
> }
>
> The extra packages are packages that are in the mxe nix-shell environment;
> I thought I'd try to keep the environments close to see what would happen.
>
>
>>
>> * If you can successfully build ordinary glib that way, but can't
>> build mxe glib, it might be time to take it back to the mxe people.
>>
>
> OK so it sounds like maybe this is an mxe issue after all?
>
>
>>
>> James
>>
>
>

-- 
NixOS Linux 
___
nix-dev mailing list
nix-dev@lists.science.uu.nl
http://lists.science.uu.nl/mailman/listinfo/nix-dev


Re: [Nix-dev] mxe on NixOS

2015-08-18 Thread Andrew Kelley
On Tue, Aug 18, 2015 at 1:18 AM Luca Bruno  wrote:

> You are doing assuming things wrong.
>
> First of all, you are not supposed to be able to build glib by installing
> things with nix-env. Either nix-build or nix-shell.
>

I did use nix-shell; I used nix-shell to build glib using the .nix file I
pasted before.


>
> Then don't set NIX_PATH for nix-shell, rather call nix-shell /path/nixpkgs
> -A glib.
>

Thanks for the tip.


>
>
> On Tuesday, August 18, 2015, Andrew Kelley  wrote:
>
>> On Mon, Aug 17, 2015 at 10:13 PM, James Cook 
>> wrote:
>>
>>> No, I'm not using mxe at all, and I've only tried running autogen.sh.
>>>
>>> Unless someone chimes in and points out why building glib outside
>>> nix-shell isn't working, a couple of ideas if you haven't already
>>> tried them:
>>>
>>> * Try starting with the glib derivation: add autoconf, automake and
>>> libtool to pkgs/development/libraries/glib/default.nix and use
>>> nix-shell -A glib.
>>>
>>
>> I forked nixpkgs and then did this modification:
>>
>> diff --git a/pkgs/development/libraries/glib/default.nix
>> b/pkgs/development/libraries/glib/default.nix
>> index fb9c361..ad2eba4 100644
>> --- a/pkgs/development/libraries/glib/default.nix
>> +++ b/pkgs/development/libraries/glib/default.nix
>> @@ -1,5 +1,6 @@
>>  { stdenv, fetchurl, pkgconfig, gettext, perl, python
>>  , libiconv, libintlOrEmpty, zlib, libffi, pcre, libelf
>> +, autoconf, automake, libtool
>>
>>  # this is just for tests (not in closure of any regular package)
>>  , coreutils, dbus_daemon, libxml2, tzdata, desktop_file_utils,
>> shared_mime_info, doCheck ? false
>> @@ -55,7 +56,7 @@ stdenv.mkDerivation rec {
>>
>>setupHook = ./setup-hook.sh;
>>
>> -  buildInputs = [ libelf ]
>> +  buildInputs = [ libelf autoconf automake libtool ]
>>  ++ optionals doCheck [ tzdata libxml2 desktop_file_utils
>> shared_mime_info ];
>>
>>nativeBuildInputs = [ pkgconfig gettext perl python ];
>>
>>
>> Then I tried `NIX_PATH=nixpkgs=/home/andy/dev/nixpkgs nix-shell -A glib`
>> but it did not need to recompile glib. Not sure what's going on with that.
>>
>> Then I tried `nix-build -A glib` which as I understand uses the current
>> directory (which was /home/andy/dev/nixpkgs) and that did trigger a build
>> of glib, which succeeded.
>>
>>
>>>
>>> * With that method, can you build vanilla, non-mxe glib?
>>> (https://github.com/GNOME/glib) If not, we must be doing something
>>> different...
>>>
>>
>> Do you mean building it from source using ./autogen.sh as you did earlier?
>>
>> I tried that just now and it worked fine. I used this for nix-shell:
>>
>> with import  {}; {
>>   glibEnv = stdenv.mkDerivation {
>> name = "glib";
>> buildInputs = [
>>   gnome.gtk_doc
>>   autoconf
>>   automake
>>   gnumake
>>   bison
>>   cmake
>>   flex
>>   gettext
>>   gperf
>>   intltool
>>   libtool
>>   pkgconfig
>>   openssl
>>   ruby
>>   scons
>>   unzip
>>   python
>>   wget
>>   zlib
>>   libffi
>> ];
>>   };
>> }
>>
>> The extra packages are packages that are in the mxe nix-shell
>> environment; I thought I'd try to keep the environments close to see what
>> would happen.
>>
>>
>>>
>>> * If you can successfully build ordinary glib that way, but can't
>>> build mxe glib, it might be time to take it back to the mxe people.
>>>
>>
>> OK so it sounds like maybe this is an mxe issue after all?
>>
>>
>>>
>>> James
>>>
>>
>>
>
> --
> NixOS Linux 
>
>
___
nix-dev mailing list
nix-dev@lists.science.uu.nl
http://lists.science.uu.nl/mailman/listinfo/nix-dev


Re: [Nix-dev] mxe on NixOS

2015-08-20 Thread James Cook
>> * If you can successfully build ordinary glib that way, but can't
>> build mxe glib, it might be time to take it back to the mxe people.
>
> OK so it sounds like maybe this is an mxe issue after all?

Could be. I would report back to the mxe bug, since you've verified
that you have everything you need to build glib normally (including
running autogen.sh).
___
nix-dev mailing list
nix-dev@lists.science.uu.nl
http://lists.science.uu.nl/mailman/listinfo/nix-dev


Re: [Nix-dev] mxe on NixOS

2015-09-01 Thread Andrew Kelley
Wrapping this thread up:

mxe has an environment variable whitelist that was causing the problem.
NixOS relies heavily on environment variables (such as PKG_CONFIG_PATH) to
utilize /nix/store/*. mxe has the whitelist in order to keep the OS
separate from MXE, but it also relies on hard coded paths ("standard
directories"). So mxe simultaneously wants to separate its environment from
the OS environment while interfacing with the OS environment via hard coded
paths. The maintainer recognized it as an MXE limitation, a limitation
which was too hard to overcome for such a non-mainstream OS.

Upstream discussion:
https://github.com/mxe/mxe/issues/723#issuecomment-133584114

Thanks for the assistance in figuring this out, I appreciate it.

On Thu, Aug 20, 2015 at 7:33 PM James Cook  wrote:

> >> * If you can successfully build ordinary glib that way, but can't
> >> build mxe glib, it might be time to take it back to the mxe people.
> >
> > OK so it sounds like maybe this is an mxe issue after all?
>
> Could be. I would report back to the mxe bug, since you've verified
> that you have everything you need to build glib normally (including
> running autogen.sh).
>
___
nix-dev mailing list
nix-dev@lists.science.uu.nl
http://lists.science.uu.nl/mailman/listinfo/nix-dev