[opensuse-factory] New package: ghc
![](https://seccdn.libravatar.org/avatar/dbef2f75e0388df2ef019bd65f3b0ca2.jpg?s=120&d=mm&r=g)
I will submit ghc (The Glorious Glasgow Haskell Compilation System) as a new package to Factory. GHC's main web page is: http://www.haskell.org/ghc/ Package ghc is developed at OBS in devel:languages:haskell Description: GHC is a state-of-the-art, open source, compiler and interactive environment for the functional language Haskell. It is part of Haskell Platform. Maintainability: The compiler has about 3-5 releases per year. Reasons to have it in Factory: Needed for Haskell Platform FATE #314446 (https://features.opensuse.org/314446) and pandoc FATE #312777 (https://features.opensuse.org/312777) Hints for package reviewers: We need to bootstrap the compiler. Therefore we need to bring a binary compiler in with a source file. That binary compiler will only be used to bootstrap a stage 0 compiler and will not be included in the resulting binary rpm. After bootstrap is done in Factory I will submit the package again with all bootstrap code removed. Lines that I will remove are marked with comments # remove after initial bootstrap and # end bootstrap. See the following package in my home project: https://build.opensuse.org/package/show?package=ghc&project=home%3Aptrommler %3Abranches%3Adevel%3Alanguages%3Ahaskell If you have further questions or requests, please drop me a line. Thanks, Peter -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
![](https://seccdn.libravatar.org/avatar/835a9492d596a5f4a8eba92c90ac373b.jpg?s=120&d=mm&r=g)
On Tue, 16 Oct 2012, Peter Trommler wrote:
I will submit ghc (The Glorious Glasgow Haskell Compilation System) as a new package to Factory.
GHC's main web page is: http://www.haskell.org/ghc/ Package ghc is developed at OBS in devel:languages:haskell
Description: GHC is a state-of-the-art, open source, compiler and interactive environment for the functional language Haskell. It is part of Haskell Platform.
Maintainability: The compiler has about 3-5 releases per year.
Reasons to have it in Factory: Needed for Haskell Platform FATE #314446 (https://features.opensuse.org/314446) and pandoc FATE #312777 (https://features.opensuse.org/312777)
Hints for package reviewers: We need to bootstrap the compiler. Therefore we need to bring a binary compiler in with a source file. That binary compiler will only be used to bootstrap a stage 0 compiler and will not be included in the resulting binary rpm.
After bootstrap is done in Factory I will submit the package again with all bootstrap code removed. Lines that I will remove are marked with comments # remove after initial bootstrap and # end bootstrap. See the following package in my home project: https://build.opensuse.org/package/show?package=ghc&project=home%3Aptrommler %3Abranches%3Adevel%3Alanguages%3Ahaskell
If you have further questions or requests, please drop me a line.
Does that 'bootstrap' work for all architectures openSUSE is built for (does it work for all SLE architectures)? Can GHC perform cross-compilation? What targets does GHC target? Richard. -- Richard Biener <rguenther@suse.de> SUSE / SUSE Labs SUSE LINUX Products GmbH - Nuernberg - AG Nuernberg - HRB 16746 GF: Jeff Hawn, Jennifer Guild, Felix Imend -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
![](https://seccdn.libravatar.org/avatar/e576df6fe8d62f2bbc03fac790accedb.jpg?s=120&d=mm&r=g)
Am 17.10.2012 10:27, schrieb Richard Biener:
On Tue, 16 Oct 2012, Peter Trommler wrote:
I will submit ghc (The Glorious Glasgow Haskell Compilation System) as a new package to Factory.
GHC's main web page is: http://www.haskell.org/ghc/ Package ghc is developed at OBS in devel:languages:haskell
Description: GHC is a state-of-the-art, open source, compiler and interactive environment for the functional language Haskell. It is part of Haskell Platform.
Maintainability: The compiler has about 3-5 releases per year.
Reasons to have it in Factory: Needed for Haskell Platform FATE #314446 (https://features.opensuse.org/314446) and pandoc FATE #312777 (https://features.opensuse.org/312777),
Hints for package reviewers: We need to bootstrap the compiler. Therefore we need to bring a binary compiler in with a source file. That binary compiler will only be used to bootstrap a stage 0 compiler and will not be included in the resulting binary rpm.
After bootstrap is done in Factory I will submit the package again with all bootstrap code removed. Lines that I will remove are marked with comments # remove after initial bootstrap and # end bootstrap. See the following package in my home project: https://build.opensuse.org/package/show?package=ghc&project=home%3Aptrommler %3Abranches%3Adevel%3Alanguages%3Ahaskell
If you have further questions or requests, please drop me a line. Does that 'bootstrap' work for all architectures openSUSE is built for (does it work for all SLE architectures)? Can GHC perform cross-compilation? What targets does GHC target? Ghc currently supports x86 and x86_64 as tier 1 platforms. That are those, that we will address first with our packages. As tier 2 platforms there are Powerpc, Powerpc64, IA-64, S/390 (That are the remaining ones supported by SLE) and additionally others like ARM, Sparc, Alpha, HPPA, m68k and mips. At the moment all tier 2 platforms lack some optional features where the most notable is support for dynamic linking.
Cross-compilation is not official supported by ghc, but it is worked on and it looks like it is already possible somehow. But for supporting some of the tier 2 platforms, it would be preferable to do a bootstrap like we want to do now for x86 and x86_64 for those again. Links: http://hackage.haskell.org/trac/ghc/wiki/Platforms http://hackage.haskell.org/trac/ghc/wiki/CrossCompilation Herbert -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
![](https://seccdn.libravatar.org/avatar/0a48436601ceec0d50fda807826f9823.jpg?s=120&d=mm&r=g)
Why each arch should have own tarball? isn't ghc-src not sufficient? The reason that it even not trying to compile on ppc Factory. error: File /home/abuild/rpmbuild/SOURCES/ghc-7.4.1-ppc64-unknown-linux.tar.bz2: No such file or directory https://build.opensuse.org/package/live_build_log?arch=ppc64&package=ghc&pro... On Wed, Oct 17, 2012 at 5:00 PM, Herbert Graeber <lists@graeber-clan.de> wrote:
Am 17.10.2012 10:27, schrieb Richard Biener:
On Tue, 16 Oct 2012, Peter Trommler wrote:
I will submit ghc (The Glorious Glasgow Haskell Compilation System) as a new package to Factory.
GHC's main web page is: http://www.haskell.org/ghc/ Package ghc is developed at OBS in devel:languages:haskell
Description: GHC is a state-of-the-art, open source, compiler and interactive environment for the functional language Haskell. It is part of Haskell Platform.
Maintainability: The compiler has about 3-5 releases per year.
Reasons to have it in Factory: Needed for Haskell Platform FATE #314446 (https://features.opensuse.org/314446) and pandoc FATE #312777 (https://features.opensuse.org/312777),
Hints for package reviewers: We need to bootstrap the compiler. Therefore we need to bring a binary compiler in with a source file. That binary compiler will only be used to bootstrap a stage 0 compiler and will not be included in the resulting binary rpm.
After bootstrap is done in Factory I will submit the package again with all bootstrap code removed. Lines that I will remove are marked with comments # remove after initial bootstrap and # end bootstrap. See the following package in my home project: https://build.opensuse.org/package/show?package=ghc&project=home%3Aptrommler %3Abranches%3Adevel%3Alanguages%3Ahaskell
If you have further questions or requests, please drop me a line. Does that 'bootstrap' work for all architectures openSUSE is built for (does it work for all SLE architectures)? Can GHC perform cross-compilation? What targets does GHC target? Ghc currently supports x86 and x86_64 as tier 1 platforms. That are those, that we will address first with our packages. As tier 2 platforms there are Powerpc, Powerpc64, IA-64, S/390 (That are the remaining ones supported by SLE) and additionally others like ARM, Sparc, Alpha, HPPA, m68k and mips. At the moment all tier 2 platforms lack some optional features where the most notable is support for dynamic linking.
Cross-compilation is not official supported by ghc, but it is worked on and it looks like it is already possible somehow. But for supporting some of the tier 2 platforms, it would be preferable to do a bootstrap like we want to do now for x86 and x86_64 for those again.
Links:
http://hackage.haskell.org/trac/ghc/wiki/Platforms http://hackage.haskell.org/trac/ghc/wiki/CrossCompilation
Herbert -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
-- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
![](https://seccdn.libravatar.org/avatar/e576df6fe8d62f2bbc03fac790accedb.jpg?s=120&d=mm&r=g)
Am 07.11.2012 13:21, schrieb Dinar Valeev:
Why each arch should have own tarball? isn't ghc-src not sufficient? It is not sufficient for boot-strapping. GHC has to be compiled by itself., so we have to solve the hen and egg problem by injecting a binary version of the compiler for the first compilation. The reason that it even not trying to compile on ppc Factory. error: File /home/abuild/rpmbuild/SOURCES/ghc-7.4.1-ppc64-unknown-linux.tar.bz2: No such file or directory This is the binary compiler you need for the first compilation. When the first build of ghc in Factory has succeeded, the binary will be removed again.
After everything works for x86 and x86_64 we may repeat the bootstrap for other architecture, too.
https://build.opensuse.org/package/live_build_log?arch=ppc64&package=ghc&pro... If you download the file from the ghc website and add it to the package you are able to do the bootstrap yourself. After first compilation, you can remove the binary again and turn bootstrap mode off. After this ghc compilation is self contained. [...] Herbert -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
![](https://seccdn.libravatar.org/avatar/0a48436601ceec0d50fda807826f9823.jpg?s=120&d=mm&r=g)
On Wed, Nov 7, 2012 at 4:32 PM, Herbert Graeber <lists@graeber-clan.de> wrote:
Am 07.11.2012 13:21, schrieb Dinar Valeev:
Why each arch should have own tarball? isn't ghc-src not sufficient? It is not sufficient for boot-strapping. GHC has to be compiled by itself., so we have to solve the hen and egg problem by injecting a binary version of the compiler for the first compilation. Is there a way to produce such tarball manually?
The reason that it even not trying to compile on ppc Factory. error: File /home/abuild/rpmbuild/SOURCES/ghc-7.4.1-ppc64-unknown-linux.tar.bz2: No such file or directory This is the binary compiler you need for the first compilation. When the first build of ghc in Factory has succeeded, the binary will be removed again.
After everything works for x86 and x86_64 we may repeat the bootstrap for other architecture, too.
https://build.opensuse.org/package/live_build_log?arch=ppc64&package=ghc&pro... If you download the file from the ghc website and add it to the package you are able to do the bootstrap yourself. After first compilation, you can remove the binary again and turn bootstrap mode off. After this ghc compilation is self contained. There is no ppc version available.
Also I took a look how Fedora doing this.. They just use ghc-src tarball.
[...] Herbert -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
-- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
![](https://seccdn.libravatar.org/avatar/dbef2f75e0388df2ef019bd65f3b0ca2.jpg?s=120&d=mm&r=g)
Dinar Valeev wrote:
On Wed, Nov 7, 2012 at 4:32 PM, Herbert Graeber <lists@graeber-clan.de> wrote:
Am 07.11.2012 13:21, schrieb Dinar Valeev:
Why each arch should have own tarball? isn't ghc-src not sufficient? It is not sufficient for boot-strapping. GHC has to be compiled by itself., so we have to solve the hen and egg problem by injecting a binary version of the compiler for the first compilation. Is there a way to produce such tarball manually? Yes, there is. Get the source, unpack it, and cd into the directory. ./configure make make binary-dist
Note: You need a working ghc for your platform to do this! I ended up building my own binary-dist to create a binary dist that did not require libgmp.so.3
The reason that it even not trying to compile on ppc Factory. error: File /home/abuild/rpmbuild/SOURCES/ghc-7.4.1-ppc64-unknown-linux.tar.bz2: No such file or directory This is the binary compiler you need for the first compilation. When the first build of ghc in Factory has succeeded, the binary will be removed again.
After everything works for x86 and x86_64 we may repeat the bootstrap for other architecture, too.
https://build.opensuse.org/package/live_build_log?arch=ppc64&package=ghc&pro...
If you download the file from the ghc website and add it to the package you are able to do the bootstrap yourself. After first compilation, you can remove the binary again and turn bootstrap mode off. After this ghc compilation is self contained. There is no ppc version available. Sorry about that. I forgot to set an ExclusiveArch tag.
If we want ghc on ppc we need someone to help bootstrap ghc for ppc and help maintain it. For that you either get a ghc binary that works on openSUSE or you go through the painful process of porting ghc through generated C files (you could use our x86 compiler for that) or you try to go the cross compile route (there are some issues with cross-compiling).
Also I took a look how Fedora doing this.. They just use ghc-src tarball.
Yes, but note the spec file BuildRequires ghc-compiler which is produced by ghc.spec. That is the chicken and egg problem Herbert was talking about. After bootstrap is done, I will resubmit ghc to Factory with all lines removed that I marked for removal in ghc.spec. Then it looks like this: https://build.opensuse.org/package/show?package=ghc&project=devel%3Alanguage... Please do not ask me to push ghc 7.6.1 to Factory (yet). I wont do that. Our goal is to provide Haskell Platform 2012.4, which has ghc 7.4.2. Please be patient. A usable ghc including a "binary free" source is coming soon. Right now we have to wait for LaTeX to be fixed in Factory. Peter -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
![](https://seccdn.libravatar.org/avatar/0a48436601ceec0d50fda807826f9823.jpg?s=120&d=mm&r=g)
On Thu, Nov 8, 2012 at 8:15 PM, Peter Trommler <peter.trommler@ohm-hochschule.de> wrote:
Dinar Valeev wrote:
On Wed, Nov 7, 2012 at 4:32 PM, Herbert Graeber <lists@graeber-clan.de> wrote:
Am 07.11.2012 13:21, schrieb Dinar Valeev:
Why each arch should have own tarball? isn't ghc-src not sufficient? It is not sufficient for boot-strapping. GHC has to be compiled by itself., so we have to solve the hen and egg problem by injecting a binary version of the compiler for the first compilation. Is there a way to produce such tarball manually? Yes, there is. Get the source, unpack it, and cd into the directory. ./configure make make binary-dist
Note: You need a working ghc for your platform to do this!
I ended up building my own binary-dist to create a binary dist that did not require libgmp.so.3 thanks
The reason that it even not trying to compile on ppc Factory. error: File /home/abuild/rpmbuild/SOURCES/ghc-7.4.1-ppc64-unknown-linux.tar.bz2: No such file or directory This is the binary compiler you need for the first compilation. When the first build of ghc in Factory has succeeded, the binary will be removed again.
After everything works for x86 and x86_64 we may repeat the bootstrap for other architecture, too.
https://build.opensuse.org/package/live_build_log?arch=ppc64&package=ghc&pro...
If you download the file from the ghc website and add it to the package you are able to do the bootstrap yourself. After first compilation, you can remove the binary again and turn bootstrap mode off. After this ghc compilation is self contained. There is no ppc version available. Sorry about that. I forgot to set an ExclusiveArch tag.
If we want ghc on ppc we need someone to help bootstrap ghc for ppc and help maintain it. For that you either get a ghc binary that works on openSUSE or you go through the painful process of porting ghc through generated C files (you could use our x86 compiler for that) or you try to go the cross compile route (there are some issues with cross-compiling). I'll look into that
Also I took a look how Fedora doing this.. They just use ghc-src tarball.
Yes, but note the spec file BuildRequires ghc-compiler which is produced by ghc.spec. That is the chicken and egg problem Herbert was talking about.
After bootstrap is done, I will resubmit ghc to Factory with all lines removed that I marked for removal in ghc.spec. Then it looks like this: https://build.opensuse.org/package/show?package=ghc&project=devel%3Alanguage...
Please do not ask me to push ghc 7.6.1 to Factory (yet). I wont do that. Our goal is to provide Haskell Platform 2012.4, which has ghc 7.4.2.
Please be patient. A usable ghc including a "binary free" source is coming soon. Right now we have to wait for LaTeX to be fixed in Factory.
Peter
-- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
-- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
participants (4)
-
Dinar Valeev
-
Herbert Graeber
-
Peter Trommler
-
Richard Biener