lettier / gifcurry

😎 The open-source, Haskell-built video editor for GIF makers.
https://lettier.github.io/gifcurry
BSD 3-Clause "New" or "Revised" License
1.35k stars 57 forks source link

[Support] I use windows? #35

Open Droyk opened 5 years ago

Droyk commented 5 years ago

Possible to make it compatible with windows?

lettier commented 5 years ago

Hello @Droyk,

Gifcurry should be compatible with Windows, once built, if all of its run-time dependencies are present. I haven't tried building Gifcurry on Windows yet but would like to soon, hopefully.

If you'd like to try, I believe the easiest way would be something like the following.

Install Chocolatey, a package manager for Windows.

Install the GStreamer development ("devel") and run-time packages. Make sure to select the 64 bit packages if your system is 64 bit.

After installing Chocolatey and GStreamer, run the following commands.

choco install git
choco install gtk-runtime
choco install imagemagick
choco install ffmpeg
choco install haskell-stack

:: Taken from https://github.com/haskell-gi/haskell-gi/wiki/Using-haskell-gi-in-Windows.
SET PATH=C:\msys64\mingw64\bin;C:\msys64\usr\bin;%PATH%
SET PKG_CONFIG_PATH=C:\msys64\mingw64\lib\pkgconfig
SET XDG_DATA_DIRS=C:\msys64\mingw64\share

pacman -S -q --noconfirm mingw64/mingw-w64-x86_64-pkg-config mingw64/mingw-w64-x86_64-gobject-introspection mingw64/mingw-w64-x86_64-gtksourceview3 mingw64/mingw-w64-x86_64-webkitgtk3

git clone https://github.com/lettier/gifcurry.git
cd gifcurry
stack setup
stack install alex happy
stack install gtk2hs-buildtools
stack install hsc2hs
stack install haskell-gi
stack install

stack exec gifcurry_gui
stack exec gifcurry_cli

:+1:

DewmBot commented 5 years ago
cabal-install version 2.4.1.0
compiled using version 2.4.1.0 of the Cabal library

stack --version
Version 2.1.3, Git revision 0fa51b9925decd937e4a993ad90cb686f88fa282 (7739 commits) x86_64 hpack-0.31.2

choco --version
0.10.15

pacman --version

 .--.                  Pacman v5.1.3 - libalpm v11.0.3
/ _.-' .-.  .-.  .-.   Copyright (C) 2006-2018 Pacman Development Team
\  '-. '-'  '-'  '-'   Copyright (C) 2002-2006 Judd Vinet
 '--'
                       This program may be freely redistributed under
                       the terms of the GNU General Public License.

ghc --version
The Glorious Glasgow Haskell Compilation System, version 8.6.5

I tried running through these commands but run into this issue:

C:\Windows\System32\gifcurry>stack install haskell-gi
haskell-gi-base     > configure
haskell-gi-base     > Configuring haskell-gi-base-0.22.2...
haskell-gi-base     > Cabal-simple_Z6RU0evB_2.2.0.1_ghc-8.4.3.exe: The program 'pkg-config' version
haskell-gi-base     > >=0.9.0 is required but it could not be found.
haskell-gi-base     >
network             > configure
network             > [1 of 2] Compiling Main             ( C:\\Users\Dewm\AppData\Local\Temp\stack1896\network-2.6.3.6\Setup.hs, C:\\Users\Dewm\AppData\Local\Temp\stack1896\network-2.6.3.6\.stack-work\dist\7d103d30\setup\Main.o )
network             > [2 of 2] Compiling StackSetupShim   ( C:\\sr\setup-exe-src\setup-shim-Z6RU0evB.hs, C:\\Users\Dewm\AppData\Local\Temp\stack1896\network-2.6.3.6\.stack-work\dist\7d103d30\setup\StackSetupShim.o )
network             > Linking C:\\Users\\Dewm\\AppData\\Local\\Temp\\stack1896\\network-2.6.3.6\\.stack-work\\dist\\7d103d30\\setup\\setup.exe ...
network             > Configuring network-2.6.3.6...
network             > configure: WARNING: unrecognized options: --with-compiler
network             > configure: loading site script /usr/local/etc/config.site
network             > checking build system type... x86_64-w64-mingw32
network             > checking host system type... x86_64-w64-mingw32
network             > checking for gcc... C:\Users\Dewm\AppData\Local\Programs\stack\X86_64~1\GHC-84~1.3\lib/../mingw/bin\gcc.exe
network             > checking whether the C compiler works... yes
network             > checking for C compiler default output file name... a.exe
network             > checking for suffix of executables... .exe
network             > checking whether we are cross compiling... no
network             > checking for suffix of object files... o
network             > checking whether we are using the GNU C compiler... yes
network             > checking whether C:\Users\Dewm\AppData\Local\Programs\stack\X86_64~1\GHC-84~1.3\lib/../mingw/bin\gcc.exe accepts -g... yes
network             > checking for C:\Users\Dewm\AppData\Local\Programs\stack\X86_64~1\GHC-84~1.3\lib/../mingw/bin\gcc.exe option to accept ISO C89... none needed
network             > checking for an ANSI C-conforming const... yes
network             > checking how to run the C preprocessor... C:\Users\Dewm\AppData\Local\Programs\stack\X86_64~1\GHC-84~1.3\lib/../mingw/bin\gcc.exe -E
network             > checking for grep that handles long lines and -e... /usr/bin/grep
network             > checking for egrep... /usr/bin/grep -E
network             > checking for ANSI C header files... yes
network             > checking for sys/types.h... yes
network             > checking for sys/stat.h... yes
network             > checking for stdlib.h... yes
network             > checking for string.h... yes
network             > checking for memory.h... yes
network             > checking for strings.h... yes
network             > checking for inttypes.h... yes
network             > checking for stdint.h... yes
network             > checking for unistd.h... yes
network             > checking fcntl.h usability... yes
network             > checking fcntl.h presence... yes
network             > checking for fcntl.h... yes
network             > checking limits.h usability... yes
network             > checking limits.h presence... yes
network             > checking for limits.h... yes
network             > checking for stdlib.h... (cached) yes
network             > checking for sys/types.h... (cached) yes
network             > checking for unistd.h... (cached) yes
network             > checking winsock2.h usability... yes
network             > checking winsock2.h presence... yes
network             > checking for winsock2.h... yes
network             > checking ws2tcpip.h usability... yes
network             > checking ws2tcpip.h presence... yes
network             > checking for ws2tcpip.h... yes
network             > checking arpa/inet.h usability... no
network             > checking arpa/inet.h presence... no
network             > checking for arpa/inet.h... no
network             > checking netdb.h usability... no
network             > checking netdb.h presence... no
network             > checking for netdb.h... no
network             > checking netinet/in.h usability... no
network             > checking netinet/in.h presence... no
network             > checking for netinet/in.h... no
network             > checking netinet/tcp.h usability... no
network             > checking netinet/tcp.h presence... no
network             > checking for netinet/tcp.h... no
network             > checking sys/socket.h usability... no
network             > checking sys/socket.h presence... no
network             > checking for sys/socket.h... no
network             > checking sys/uio.h usability... no
network             > checking sys/uio.h presence... no
network             > checking for sys/uio.h... no
network             > checking sys/un.h usability... no
network             > checking sys/un.h presence... no
network             > checking for sys/un.h... no
network             > checking linux/can.h usability... no
network             > checking linux/can.h presence... no
network             > checking for linux/can.h... no
network             > checking linux/tcp.h usability... no
network             > checking linux/tcp.h presence... no
network             > checking for linux/tcp.h... no
network             > checking net/if.h usability... no
network             > checking net/if.h presence... no
network             > checking for net/if.h... no
network             > checking for readlink... no
network             > checking for symlink... no
network             > checking for if_nametoindex... no
network             > checking for struct msghdr.msg_control... no
network             > checking for struct msghdr.msg_accrights... no
network             > checking for struct sockaddr.sa_len... no
network             > checking for in_addr_t in netinet/in.h... no
network             > checking for SO_PEERCRED and struct ucred in sys/socket.h... no
network             > checking for getpeereid in unistd.h... checking for getpeereid... no
network             > checking for _head_libws2_32_a in -lws2_32... no
network             > checking for getaddrinfo... yes
network             > checking for gai_strerror... no
network             > checking whether AI_ADDRCONFIG is declared... no
network             > checking whether AI_ALL is declared... no
network             > checking whether AI_NUMERICSERV is declared... no
network             > checking whether AI_V4MAPPED is declared... no
network             > checking whether IPV6_V6ONLY is declared... yes
network             > checking whether IPPROTO_IP is declared... yes
network             > checking whether IPPROTO_TCP is declared... yes
network             > checking whether IPPROTO_IPV6 is declared... yes
network             > checking for sendfile in sys/sendfile.h... no
network             > checking for sendfile in sys/socket.h... no
network             > checking for gethostent... no
network             > checking for accept4... no
network             > configure: creating ./config.status
network             > config.status: creating network.buildinfo
network             > config.status: creating include/HsNetworkConfig.h
network             > configure: WARNING: unrecognized options: --with-compiler
network             > build
split               > configure
network             > Preprocessing library for network-2.6.3.6..
split               > Configuring split-0.2.3.3...
split               > build
scientific          > configure
split               > Preprocessing library for split-0.2.3.3..
split               > Building library for split-0.2.3.3..
split               > [1 of 2] Compiling Data.List.Split.Internals
scientific          > Configuring scientific-0.3.6.2...
split               > [2 of 2] Compiling Data.List.Split
split               > ignoring (possibly broken) abi-depends field for packages
split               > copy/register
split               > Installing library in C:\sr\snapshots\6a1b4da2\lib\x86_64-windows-ghc-8.4.3\split-0.2.3.3-3fFb67BrTpqAjKImK4FBjR
scientific          > build
split               > Registering library for split-0.2.3.3..
scientific          > Preprocessing library for scientific-0.3.6.2..
scientific          > Building library for scientific-0.3.6.2..
scientific          > [1 of 5] Compiling GHC.Integer.Compat
scientific          > [2 of 5] Compiling Utils
scientific          > [3 of 5] Compiling Data.Scientific
network             > Building library for network-2.6.3.6..
scientific          > [4 of 5] Compiling Data.Text.Lazy.Builder.Scientific
network             > [1 of 9] Compiling Network.Socket.ByteString.Internal
network             > [2 of 9] Compiling Network.Socket.Types
network             >
network             > Network\Socket\Types.hsc:71:1: warning: [-Wunused-imports]
network             >     The import of ‘Foreign.Marshal.Array’ is redundant
network             >       except perhaps to import instances from ‘Foreign.Marshal.Array’
network             >     To import instances alone, use: import Foreign.Marshal.Array()
network             >    |
network             > 71 | import Foreign.Marshal.Array
network             >    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
network             >
network             > Network\Socket\Types.hsc:764:1: warning: [-Wunsupported-calling-conventions]
scientific          > [5 of 5] Compiling Data.ByteString.Builder.Scientific
scientific          > ignoring (possibly broken) abi-depends field for packages
scientific          > copy/register
scientific          > Installing library in C:\sr\snapshots\6a1b4da2\lib\x86_64-windows-ghc-8.4.3\scientific-0.3.6.2-EwdQFxaAkK4IuJN0Z0lX15
scientific          > Registering library for scientific-0.3.6.2..
terminateProcess: permission denied (Permission denied)

--  While building package haskell-gi-base-0.22.2 using:
      C:\sr\setup-exe-cache\x86_64-windows\Cabal-simple_Z6RU0evB_2.2.0.1_ghc-8.4.3.exe --builddir=.stack-work\dist\7d103d30 configure --user --package-db=clear --package-db=global --package-db=C:\sr\snapshots\6a1b4da2\pkgdb --libdir=C:\sr\snapshots\6a1b4da2\lib --bindir=C:\sr\snapshots\6a1b4da2\bin --datadir=C:\sr\snapshots\6a1b4da2\share --libexecdir=C:\sr\snapshots\6a1b4da2\libexec --sysconfdir=C:\sr\snapshots\6a1b4da2\etc --docdir=C:\sr\snapshots\6a1b4da2\doc\haskell-gi-base-0.22.2 --htmldir=C:\sr\snapshots\6a1b4da2\doc\haskell-gi-base-0.22.2 --haddockdir=C:\sr\snapshots\6a1b4da2\doc\haskell-gi-base-0.22.2 --dependency=base=base-4.11.1.0 --dependency=bytestring=bytestring-0.10.8.2 --dependency=containers=containers-0.5.11.0 --dependency=text=text-1.2.3.1-2K0XAMsdUtlF0sNn15iplD --extra-include-dirs=C:\Users\Dewm\AppData\Local\Programs\stack\x86_64-windows\msys2-20180531\mingw64\include --extra-lib-dirs=C:\Users\Dewm\AppData\Local\Programs\stack\x86_64-windows\msys2-20180531\mingw64\lib --extra-lib-dirs=C:\Users\Dewm\AppData\Local\Programs\stack\x86_64-windows\msys2-20180531\mingw64\bin --exact-configuration --ghc-option=-fhide-source-paths
    Process exited with code: ExitFailure 1
Progress 4/20

I am running in an elevated prompt.

EDIT: running without admin privs got farther.

C:\Users\Dewm>stack install haskell-gi
Writing implicit global project config file to: C:\sr\global-project\stack.yaml
Note: You can change the snapshot via the resolver field there.
Using latest snapshot resolver: lts-13.30
Preparing to install GHC to an isolated location.
This will not interfere with any system-level installation.
Downloaded ghc-8.6.5.
Already downloaded.
Already downloaded.
Decompressing ghc-8.6.5.tar.xz...

7-Zip 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18

Processing archive: C:\Users\Dewm\AppData\Local\Programs\stack\x86_64-windows\ghc-8.6.5.tar.xz

Extracting  ghc-8.6.5.tar

Everything is Ok

Size:       1773445120
Compressed: 280280296
Extracting ghc-8.6.5.tar...
Extracted total of 9780 files from ghc-8.6.5.tar
GHC installed to C:\Users\Dewm\AppData\Local\Programs\stack\x86_64-windows\ghc-8.6.5\
[1 of 2] Compiling Main             ( C:\\sr\setup-exe-src\setup-Z6RU0evB.hs, C:\\sr\setup-exe-src\setup-Z6RU0evB.o )
[2 of 2] Compiling StackSetupShim   ( C:\\sr\setup-exe-src\setup-shim-Z6RU0evB.hs, C:\\sr\setup-exe-src\setup-shim-Z6RU0evB.o )
Linking C:\\sr\\setup-exe-cache\\x86_64-windows\\tmp-Cabal-simple_Z6RU0evB_2.4.0.1_ghc-8.6.5.exe ...
data-default-class  > configure
data-default-class  > Configuring data-default-class-0.1.2.0...
data-default-class  > build
hashable            > configure
data-default-class  > Preprocessing library for data-default-class-0.1.2.0..
data-default-class  > Building library for data-default-class-0.1.2.0..
data-default-class  > [1 of 1] Compiling Data.Default.Class
hashable            > Configuring hashable-1.2.7.0...
data-default-class  > copy/register
data-default-class  > Installing library in C:\sr\snapshots\87f62c73\lib\x86_64-windows-ghc-8.6.5\data-default-class-0.1.2.0-FeIQ5tLoVZBHMSgrT9zptQ
data-default-class  > Registering library for data-default-class-0.1.2.0..
hashable            > build
blaze-builder       > configure
hashable            > Preprocessing library for hashable-1.2.7.0..
hashable            > Building library for hashable-1.2.7.0..
hashable            > [1 of 4] Compiling Data.Hashable.Class
blaze-builder       > Configuring blaze-builder-0.4.1.0...
blaze-builder       > build
Cabal               > configure
blaze-builder       > Preprocessing library for blaze-builder-0.4.1.0..
blaze-builder       > Building library for blaze-builder-0.4.1.0..
blaze-builder       > [ 1 of 11] Compiling Blaze.ByteString.Builder.Internal.Write
hashable            > [2 of 4] Compiling Data.Hashable.Generic
Cabal               > Configuring Cabal-2.4.1.0...
hashable            > [3 of 4] Compiling Data.Hashable
hashable            > [4 of 4] Compiling Data.Hashable.Lifted
blaze-builder       > [ 2 of 11] Compiling Blaze.ByteString.Builder.Compat.Write
blaze-builder       > [ 3 of 11] Compiling Blaze.ByteString.Builder.Int
blaze-builder       > [ 4 of 11] Compiling Blaze.ByteString.Builder.Html.Word
Cabal               > build
haskell-gi-base     > configure
hashable            > copy/register
hashable            > Installing library in C:\sr\snapshots\87f62c73\lib\x86_64-windows-ghc-8.6.5\hashable-1.2.7.0-2SI038axTEd7AEZJ275kpi
hashable            > Registering library for hashable-1.2.7.0..
blaze-builder       > [ 5 of 11] Compiling Blaze.ByteString.Builder.Char8
Cabal               > Preprocessing library for Cabal-2.4.1.0..
Cabal               > Building library for Cabal-2.4.1.0..
blaze-builder       > [ 6 of 11] Compiling Blaze.ByteString.Builder.Char.Utf8
haskell-gi-base     > Configuring haskell-gi-base-0.21.5...
blaze-builder       > [ 7 of 11] Compiling Blaze.ByteString.Builder.Html.Utf8
haskell-gi-base     > Cabal-simple_Z6RU0evB_2.4.0.1_ghc-8.6.5.exe: The program 'pkg-config' version
haskell-gi-base     > >=0.9.0 is required but it could not be found.
haskell-gi-base     >
async               > configure
blaze-builder       > [ 8 of 11] Compiling Blaze.ByteString.Builder.ByteString
blaze-builder       > [ 9 of 11] Compiling Blaze.ByteString.Builder.HTTP
async               > Configuring async-2.2.2...
blaze-builder       > [10 of 11] Compiling Blaze.ByteString.Builder.Word
blaze-builder       > [11 of 11] Compiling Blaze.ByteString.Builder
async               > build
blaze-builder       > copy/register
async               > Preprocessing library for async-2.2.2..
async               > Building library for async-2.2.2..
blaze-builder       > Installing library in C:\sr\snapshots\87f62c73\lib\x86_64-windows-ghc-8.6.5\blaze-builder-0.4.1.0-KrFxFv3kgua3BTNMsMBadC
async               > [1 of 1] Compiling Control.Concurrent.Async
blaze-builder       > Registering library for blaze-builder-0.4.1.0..
Cabal               > [  1 of 220] Compiling Distribution.Compat.Binary
Cabal               > [  2 of 220] Compiling Distribution.Compat.Directory
Cabal               > [  3 of 220] Compiling Distribution.Compat.Exception
Cabal               > [  4 of 220] Compiling Distribution.Compat.Internal.TempFile
Cabal               > [  5 of 220] Compiling Distribution.Compat.MonadFail
Cabal               > [  6 of 220] Compiling Distribution.Compat.Newtype
Cabal               > [  7 of 220] Compiling Distribution.Compat.Semigroup
Cabal               > [  8 of 220] Compiling Distribution.Compat.Stack
Cabal               > [  9 of 220] Compiling Distribution.Compat.Prelude
async               > copy/register
async               > Installing library in C:\sr\snapshots\87f62c73\lib\x86_64-windows-ghc-8.6.5\async-2.2.2-EbxQ7tk0OFk9dJNMtaidSf
Cabal               > [ 10 of 220] Compiling Distribution.Compat.SnocList
Cabal               > [ 11 of 220] Compiling Distribution.Compat.ReadP
async               > Registering library for async-2.2.2..
Cabal               > [ 12 of 220] Compiling Distribution.Compat.Prelude.Internal
Cabal               > [ 13 of 220] Compiling Distribution.Compat.Parsing
Cabal               > [ 14 of 220] Compiling Distribution.Compat.Graph
Cabal               > [ 15 of 220] Compiling Distribution.Compat.GetShortPathName
Cabal               > [ 16 of 220] Compiling Distribution.Compat.DList
Cabal               > [ 17 of 220] Compiling Distribution.Compat.Lens
Cabal               > [ 18 of 220] Compiling Distribution.Compat.CopyFile
Cabal               > [ 19 of 220] Compiling Distribution.Compat.CharParsing
Cabal               > [ 20 of 220] Compiling Distribution.CabalSpecVersion
Cabal               > [ 21 of 220] Compiling Distribution.Compat.Environment
Cabal               > [ 22 of 220] Compiling Distribution.Compat.CreatePipe
Cabal               > [ 23 of 220] Compiling Distribution.GetOpt
Cabal               > [ 24 of 220] Compiling Distribution.Lex
Cabal               > [ 25 of 220] Compiling Distribution.PackageDescription.Quirks
Cabal               > [ 26 of 220] Compiling Distribution.PackageDescription.Utils
Cabal               > [ 27 of 220] Compiling Distribution.Parsec.Common
Cabal               > [ 28 of 220] Compiling Distribution.Parsec.Field
Cabal               > [ 29 of 220] Compiling Distribution.Parsec.LexerMonad
Cabal               > [ 30 of 220] Compiling Distribution.Parsec.Lexer
Cabal               > [ 31 of 220] Compiling Distribution.Parsec.Parser
Cabal               > [ 32 of 220] Compiling Distribution.Pretty
Cabal               > [ 33 of 220] Compiling Distribution.SPDX.LicenseListVersion
Cabal               > [ 34 of 220] Compiling Distribution.Simple.CCompiler
Cabal               > [ 35 of 220] Compiling Distribution.Simple.Flag
Cabal               > [ 36 of 220] Compiling Distribution.Simple.PreProcess.Unlit
Cabal               > [ 37 of 220] Compiling Distribution.Simple.Program.Internal
Cabal               > [ 38 of 220] Compiling Distribution.TestSuite
Cabal               > [ 39 of 220] Compiling Distribution.Types.Condition
Cabal               > [ 40 of 220] Compiling Distribution.Types.CondTree
Cabal               > [ 41 of 220] Compiling Distribution.Utils.Base62
Cabal               > [ 42 of 220] Compiling Distribution.Utils.IOData
Cabal               > [ 43 of 220] Compiling Distribution.Utils.MapAccum
Cabal               > [ 44 of 220] Compiling Distribution.Utils.Progress
Cabal               > [ 45 of 220] Compiling Distribution.Utils.String
Cabal               > [ 46 of 220] Compiling Distribution.Utils.ShortText
Cabal               > [ 47 of 220] Compiling Distribution.Utils.Generic
Cabal               > [ 48 of 220] Compiling Distribution.Parsec.FieldLineStream
Cabal               > [ 49 of 220] Compiling Distribution.Parsec.Class
Cabal               > [ 50 of 220] Compiling Distribution.Text
Cabal               > [ 51 of 220] Compiling Distribution.Types.Version
Cabal               > [ 52 of 220] Compiling Distribution.Types.VersionRange
Cabal               > [ 53 of 220] Compiling Distribution.Types.VersionInterval
Cabal               > [ 54 of 220] Compiling Distribution.Types.SourceRepo
Cabal               > [ 55 of 220] Compiling Distribution.Types.SourceRepo.Lens
Cabal               > [ 56 of 220] Compiling Distribution.Types.PkgconfigName
Cabal               > [ 57 of 220] Compiling Distribution.Types.ForeignLibType
Cabal               > [ 58 of 220] Compiling Distribution.Types.ForeignLibOption
Cabal               > [ 59 of 220] Compiling Distribution.Types.ExecutableScope
Cabal               > [ 60 of 220] Compiling Distribution.Types.ComponentId
Cabal               > [ 61 of 220] Compiling Distribution.Types.BuildType
Cabal               > [ 62 of 220] Compiling Distribution.Types.AbiHash
Cabal               > [ 63 of 220] Compiling Distribution.System
Cabal               > [ 64 of 220] Compiling Distribution.SPDX.LicenseReference
Cabal               > [ 65 of 220] Compiling Distribution.SPDX.LicenseId
Cabal               > [ 66 of 220] Compiling Distribution.SPDX.LicenseExceptionId
Cabal               > [ 67 of 220] Compiling Distribution.SPDX.LicenseExpression
Cabal               > [ 68 of 220] Compiling Distribution.SPDX.License
Cabal               > [ 69 of 220] Compiling Distribution.SPDX
Cabal               > [ 70 of 220] Compiling Distribution.ReadE
Cabal               > [ 71 of 220] Compiling Distribution.ModuleName
Cabal               > [ 72 of 220] Compiling Distribution.Types.ModuleRenaming
Cabal               > [ 73 of 220] Compiling Distribution.Types.IncludeRenaming
Cabal               > [ 74 of 220] Compiling Distribution.FieldGrammar.Class
Cabal               > [ 75 of 220] Compiling Distribution.Utils.UnionFind
Cabal               > [ 76 of 220] Compiling Distribution.Verbosity
Cabal               > [ 77 of 220] Compiling Distribution.Version
Cabal               > [ 78 of 220] Compiling Distribution.Types.TestType
Cabal               > [ 79 of 220] Compiling Distribution.Types.TestSuiteInterface
Cabal               > [ 80 of 220] Compiling Distribution.Types.PkgconfigDependency
Cabal               > [ 81 of 220] Compiling Distribution.Types.BenchmarkType
Cabal               > [ 82 of 220] Compiling Distribution.Types.BenchmarkInterface
Cabal               > [ 83 of 220] Compiling Distribution.License
Cabal               > [ 84 of 220] Compiling Language.Haskell.Extension
Cabal               > [ 85 of 220] Compiling Distribution.Compiler
Cabal               > [ 86 of 220] Compiling Distribution.Parsec.Newtypes
Cabal               > [ 87 of 220] Compiling Distribution.ParseUtils
Cabal               > [ 88 of 220] Compiling Distribution.Types.PackageName
Cabal               > [ 89 of 220] Compiling Distribution.Types.UnqualComponentName
Cabal               > [ 90 of 220] Compiling Distribution.Types.ComponentName
Cabal               > [ 91 of 220] Compiling Distribution.Types.PackageId
Cabal               > [ 92 of 220] Compiling Distribution.Types.UnitId
Cabal               > [ 93 of 220] Compiling Distribution.Types.Module
Cabal               > [ 94 of 220] Compiling Distribution.Backpack
Cabal               > [ 95 of 220] Compiling Distribution.Backpack.ModSubst
Cabal               > [ 96 of 220] Compiling Distribution.Backpack.FullUnitId
Cabal               > [ 97 of 220] Compiling Distribution.Types.PackageId.Lens
Cabal               > [ 98 of 220] Compiling Distribution.Types.ModuleReexport
Cabal               > [ 99 of 220] Compiling Distribution.Types.Mixin
Cabal               > [100 of 220] Compiling Distribution.Types.ExeDependency
Cabal               > [101 of 220] Compiling Distribution.Types.Dependency
Cabal               > [102 of 220] Compiling Distribution.Types.SetupBuildInfo
Cabal               > [103 of 220] Compiling Distribution.Types.SetupBuildInfo.Lens
Cabal               > [104 of 220] Compiling Distribution.Types.DependencyMap
Cabal               > [105 of 220] Compiling Distribution.Backpack.ModuleScope
Cabal               > [106 of 220] Compiling Distribution.Types.MungedPackageName
Cabal               > [107 of 220] Compiling Distribution.Types.MungedPackageId
Cabal               > [108 of 220] Compiling Distribution.Package
Cabal               > [109 of 220] Compiling Distribution.Types.AnnotatedId
Cabal               > [110 of 220] Compiling Distribution.Types.ComponentInclude
Cabal               > [111 of 220] Compiling Distribution.Types.AbiDependency
Cabal               > [112 of 220] Compiling Distribution.Simple.InstallDirs
Cabal               > [113 of 220] Compiling Distribution.Types.LegacyExeDependency
Cabal               > [114 of 220] Compiling Distribution.Types.BuildInfo
Cabal               > [115 of 220] Compiling Distribution.Types.HookedBuildInfo
Cabal               > [116 of 220] Compiling Distribution.Types.BuildInfo.Lens
Cabal               > [117 of 220] Compiling Distribution.Types.TestSuite
Cabal               > [118 of 220] Compiling Distribution.Types.TestSuite.Lens
Cabal               > [119 of 220] Compiling Distribution.Types.Library
Cabal               > [120 of 220] Compiling Distribution.Types.Library.Lens
Cabal               > [121 of 220] Compiling Distribution.Types.ForeignLib
Cabal               > [122 of 220] Compiling Distribution.Types.ForeignLib.Lens
Cabal               > [123 of 220] Compiling Distribution.Types.Executable
Cabal               > [124 of 220] Compiling Distribution.Types.Executable.Lens
Cabal               > [125 of 220] Compiling Distribution.Types.Benchmark
Cabal               > [126 of 220] Compiling Distribution.Types.Component
Cabal               > [127 of 220] Compiling Distribution.Types.ComponentRequestedSpec
Cabal               > [128 of 220] Compiling Distribution.Types.PackageDescription
Cabal               > [129 of 220] Compiling Distribution.Types.GenericPackageDescription
Cabal               > [130 of 220] Compiling Distribution.Types.GenericPackageDescription.Lens
Cabal               > [131 of 220] Compiling Distribution.Types.Benchmark.Lens
Cabal               > [132 of 220] Compiling Distribution.Types.PackageDescription.Lens
Cabal               > [133 of 220] Compiling Distribution.Types.Lens
Cabal               > [134 of 220] Compiling Distribution.PackageDescription
Cabal               > [135 of 220] Compiling Distribution.Simple.BuildToolDepends
Cabal               > [136 of 220] Compiling Distribution.Types.ExposedModule
Cabal               > [137 of 220] Compiling Distribution.Types.InstalledPackageInfo
Cabal               > [138 of 220] Compiling Distribution.Types.InstalledPackageInfo.Lens
Cabal               > [139 of 220] Compiling Distribution.PrettyUtils
Cabal               > [140 of 220] Compiling Paths_Cabal
Cabal               > [141 of 220] Compiling Distribution.Simple.Utils
Cabal               > [142 of 220] Compiling Distribution.Utils.NubList
Cabal               > [143 of 220] Compiling Distribution.Utils.LogProgress
Cabal               > [144 of 220] Compiling Distribution.Simple.Program.ResponseFile
Cabal               > [145 of 220] Compiling Distribution.Simple.Program.Find
Cabal               > [146 of 220] Compiling Distribution.Simple.Program.Types
Cabal               > [147 of 220] Compiling Distribution.Simple.Program.Run
Cabal               > [148 of 220] Compiling Distribution.Simple.Program.Script
Cabal               > [149 of 220] Compiling Distribution.Simple.Program.Hpc
Cabal               > [150 of 220] Compiling Distribution.Simple.Glob
Cabal               > [151 of 220] Compiling Distribution.Simple.Compiler
Cabal               > [152 of 220] Compiling Distribution.Simple.GHC.ImplInfo
Cabal               > [153 of 220] Compiling Distribution.Simple.Program.GHC
Cabal               > [154 of 220] Compiling Distribution.Simple.Program.Builtin
Cabal               > [155 of 220] Compiling Distribution.Simple.Program.Db
Cabal               > [156 of 220] Compiling Distribution.Simple.Program
Cabal               > [157 of 220] Compiling Distribution.Simple.Program.Strip
Cabal               > [158 of 220] Compiling Distribution.Simple.Command
Cabal               > [159 of 220] Compiling Distribution.Simple.Setup
Cabal               > [160 of 220] Compiling Distribution.Parsec.ParseResult
Cabal               > [161 of 220] Compiling Distribution.Parsec.ConfVar
Cabal               > [162 of 220] Compiling Distribution.PackageDescription.Configuration
Cabal               > [163 of 220] Compiling Distribution.Make
Cabal               > [164 of 220] Compiling Distribution.FieldGrammar.Pretty
Cabal               > [165 of 220] Compiling Distribution.FieldGrammar.Parsec
Cabal               > [166 of 220] Compiling Distribution.FieldGrammar
Cabal               > [167 of 220] Compiling Distribution.PackageDescription.FieldGrammar
Cabal               > [168 of 220] Compiling Distribution.PackageDescription.PrettyPrint
Cabal               > [169 of 220] Compiling Distribution.PackageDescription.Parsec
Cabal               > [170 of 220] Compiling Distribution.FieldGrammar.FieldDescrs
Cabal               > [171 of 220] Compiling Distribution.Types.InstalledPackageInfo.FieldGrammar
Cabal               > [172 of 220] Compiling Distribution.InstalledPackageInfo
Cabal               > [173 of 220] Compiling Distribution.Types.ComponentLocalBuildInfo
Cabal               > [174 of 220] Compiling Distribution.Types.TargetInfo
Cabal               > [175 of 220] Compiling Distribution.Simple.Program.HcPkg
Cabal               > [176 of 220] Compiling Distribution.Simple.PackageIndex
Cabal               > [177 of 220] Compiling Distribution.Types.LocalBuildInfo
Cabal               > [178 of 220] Compiling Distribution.Simple.LocalBuildInfo
Cabal               > [179 of 220] Compiling Distribution.Simple.Test.Log
Cabal               > [180 of 220] Compiling Distribution.Simple.Program.Ld
Cabal               > [181 of 220] Compiling Distribution.Simple.Program.Ar
Cabal               > [182 of 220] Compiling Distribution.Simple.Hpc
Cabal               > [183 of 220] Compiling Distribution.Simple.BuildTarget
Cabal               > [184 of 220] Compiling Distribution.Simple.BuildPaths
Cabal               > [185 of 220] Compiling Distribution.Simple.UHC
Cabal               > [186 of 220] Compiling Distribution.PackageDescription.Check
Cabal               > [187 of 220] Compiling Distribution.Simple.Build.PathsModule
Cabal               > [188 of 220] Compiling Distribution.Simple.Test.LibV09
Cabal               > [189 of 220] Compiling Distribution.Simple.Test.ExeV10
Cabal               > [190 of 220] Compiling Distribution.Simple.Build.Macros
Cabal               > [191 of 220] Compiling Distribution.Backpack.Id
Cabal               > [192 of 220] Compiling Distribution.Backpack.ConfiguredComponent
Cabal               > [193 of 220] Compiling Distribution.Backpack.ComponentsGraph
Cabal               > [194 of 220] Compiling Distribution.Simple.HaskellSuite
Cabal               > [195 of 220] Compiling Distribution.Simple.GHC.Internal
Cabal               > [196 of 220] Compiling Distribution.Simple.GHCJS
Cabal               > [197 of 220] Compiling Distribution.Simple.GHC.EnvironmentParser
Cabal               > [198 of 220] Compiling Distribution.Simple.GHC
Cabal               > [199 of 220] Compiling Distribution.Simple.Install
Cabal               > [200 of 220] Compiling Distribution.Backpack.ModuleShape
Cabal               > [201 of 220] Compiling Distribution.Backpack.UnifyM
Cabal               > [202 of 220] Compiling Distribution.Backpack.MixLink
Cabal               > [203 of 220] Compiling Distribution.Backpack.PreModuleShape
Cabal               > [204 of 220] Compiling Distribution.Backpack.PreExistingComponent
Cabal               > [205 of 220] Compiling Distribution.Backpack.LinkedComponent
Cabal               > [206 of 220] Compiling Distribution.Compat.Time
Cabal               > [207 of 220] Compiling Distribution.Backpack.ReadyComponent
Cabal               > [208 of 220] Compiling Distribution.Backpack.Configure
Cabal               > [209 of 220] Compiling Distribution.Backpack.DescribeUnitId
Cabal               > [210 of 220] Compiling Distribution.Simple.Register
Cabal               > [211 of 220] Compiling Distribution.Simple.PreProcess
Cabal               > [212 of 220] Compiling Distribution.Simple.UserHooks
Cabal               > [213 of 220] Compiling Distribution.Simple.Test
Cabal               > [214 of 220] Compiling Distribution.Simple.Bench
Cabal               > [215 of 220] Compiling Distribution.Simple.SrcDist
Cabal               > [216 of 220] Compiling Distribution.Simple.Configure
Cabal               > [217 of 220] Compiling Distribution.Simple.Build
Cabal               > [218 of 220] Compiling Distribution.Simple.Haddock
Cabal               > [219 of 220] Compiling Distribution.Simple.Doctest
Cabal               > [220 of 220] Compiling Distribution.Simple
Cabal               > copy/register
Cabal               > Installing library in C:\sr\snapshots\87f62c73\lib\x86_64-windows-ghc-8.6.5\Cabal-2.4.1.0-78x0vw3MyCl4xpT30nlxaF
Cabal               > Registering library for Cabal-2.4.1.0..

--  While building package haskell-gi-base-0.21.5 using:
      C:\sr\setup-exe-cache\x86_64-windows\Cabal-simple_Z6RU0evB_2.4.0.1_ghc-8.6.5.exe --builddir=.stack-work\dist\e626a42b configure --user --package-db=clear --package-db=global --package-db=C:\sr\snapshots\87f62c73\pkgdb --libdir=C:\sr\snapshots\87f62c73\lib --bindir=C:\sr\snapshots\87f62c73\bin --datadir=C:\sr\snapshots\87f62c73\share --libexecdir=C:\sr\snapshots\87f62c73\libexec --sysconfdir=C:\sr\snapshots\87f62c73\etc --docdir=C:\sr\snapshots\87f62c73\doc\haskell-gi-base-0.21.5 --htmldir=C:\sr\snapshots\87f62c73\doc\haskell-gi-base-0.21.5 --haddockdir=C:\sr\snapshots\87f62c73\doc\haskell-gi-base-0.21.5 --dependency=base=base-4.12.0.0 --dependency=bytestring=bytestring-0.10.8.2 --dependency=containers=containers-0.6.0.1 --dependency=text=text-1.2.3.1 --extra-include-dirs=C:\Users\Dewm\AppData\Local\Programs\stack\x86_64-windows\msys2-20180531\mingw64\include --extra-lib-dirs=C:\Users\Dewm\AppData\Local\Programs\stack\x86_64-windows\msys2-20180531\mingw64\lib --extra-lib-dirs=C:\Users\Dewm\AppData\Local\Programs\stack\x86_64-windows\msys2-20180531\mingw64\bin --exact-configuration --ghc-option=-fhide-source-paths
    Process exited with code: ExitFailure 1
Progress 6/38
lettier commented 5 years ago

Hello @DewmBot

Thank you for trying out Gifcurry on Windows.

Are you able to compile the small hello world program found on this guide?

Another option would be to use the Windows Subsystem for Linux (WSL) if you are using Windows 10.

You'll need to enable developer mode.

Next turn on WSL by going to control panel, programs, programs and features, and then click Turn Windows Features On or Off. Check the box next to Windows Subsystem for Linux and click okay.

After that, install Ubuntu 18.04 from the Microsoft store.

Once Ubuntu is installed, install VcXsrv. This will allow you to run graphical programs using WSL instead of just command line programs. Once installed, launch VcXsrv.

Now download the Gifcurry linux binaries found on the releases page. Extract the archive and place it somewhere in your C drive.

To open a bash prompt, search the start menu for Ubuntu.

With bash open, install vim-gtk.

sudo apt-get install vim-gtk.

Now find and run the Gifcurry GUI binary.

cd /mnt/c/path/to/gifcurry/bin/
export DISPLAY=:0.0
gifcurry_gui

Here's a more in-depth guide to running graphical Linux programs under WSL.

Gifcurry does come with a command line only option. WSL by itself should be able to run it.

Another option would be to run Ubuntu as a virtual machine and run Gifcurry from the virtual machine.

:+1:

RikJm commented 4 years ago

I tried following your chocolatey install instructions on windows... epic fail 👎