-
-
Notifications
You must be signed in to change notification settings - Fork 553
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
windows installation #652
Comments
It seems to be problematic to do so. Other issues are open with the Windows support label, that you can read to meet with windows users. I don't know windows for not having used it ever, but I could see about building a |
FYI to anyone who is trying to build in Windows 10, here's how far I've gotten:
|
My build fails at:
Full log starting with |
BTW
|
In case it's of any use, here's /tmp/pgloader-bundle-build.log: |
The problem you have with ASDF circular dependency isn't limited to windows in any ways, to my knowledge. You need to use more recent version of pgloader dependencies. Normally |
Hi Dimitri,
Help? |
Hey @philCryoport I am getting the following error:
I tried with make clean all, which seems to work for me with make 4.2.1 on msys2 64-bit. Help is highly appreciated. Best, Kristian |
@klyhne which version of SBCL are you using? |
Apologies it was so long ago I don't remember. I think in the end I just used Linux. |
Hey guys, trying to "make" it work on windows too, but considering this comment session I'm now choosing linux to do so. thank you anyway |
I am having the same type of problems
sbcl - 1.4.2 |
I also run into the following problem with SSLeay32.dll
The above was when building from master, the following when building from a bundle:
|
The more I look into the issues above, it seems that there is something amiss with the libraries. Probably the issue is that I am trying to build on a 64-bit machine. It seems that this is upstream rather than with pgloader. See also cl-plus-ssl/cl-plus-ssl#53 Edit: I installed Shining Light OpenSSL for Win64 and fixed my path to include this one. That solved the SSL include problem. Now working on the local-socket. |
Hi @dimitri Here again the steps and the versions. On Windows 2012 R2 64 bits:
All works, but I'm stucked while compiling pgloader (many versions, including v3.6.0 pre-release) with the error:
And looking in the log I get the following:
The problem is in how qymnd is accesing the sockets. And the root of the error might be in this commit introduced in sbcl v 1.4.2, which changes the behaviour for windows platforms only: sbcl/sbcl@6eb5fcb I've tried to find olders sbcl libraries without success and I've tried to compile by myself a patched version of the 1.4.15 source also without success. I hope this helps in case you want to dig deeper to fix the issue. Best, Matt |
Hi @MRigal ; thanks for the status update! As I'm not using windows, progress in compatibility with this OS is very slow, at best, i.e. when it happens. Can you please try compiling with Clozure-CL (as per the INSTALL file), which for sure will not suffer from the problem you mention with SB-BSD-SOCKETS, the SBCL specific implementation of sockets. |
Hi @dimitri
Unfortunately, I have only very little knowledge about lisp |
Just for another update, I got stuck at this point:
The previous steps I have taken:
|
Another quick update on building from the bundle:
The SBCL version is 1.4.16. |
Another test on CCL:
|
All, I might figure out a way to compile pgloader on windows. For sybdb.dll drive, I use dblib.dll and rename it to sybdb.dll. Here is the link: ftp://ftp.freepascal.org/fpc/contrib/windows/dblib_0.95.zip Another thing is when you compile pgloader on windows, do not use the makefile... Go to the pgloader folder, then execute: However, I still encountered this problem:
|
Here is the version I have compiled. It is compiled using CCL 1.11.5. The steps I have using: Make sure the verison is the same as mine. |
If somebody can verify and duplicate @w93163red's work, should we consider reopening #385 to automate binary releases? |
Windows users can also install the Linux Subsystem for Windows and use apt to install the latest release version. |
Thanks for the tip, @samuei - posted here https://stackoverflow.com/questions/38750898/build-or-install-pg-loader-on-windows/59370143 |
Hi i tried to build the source using make command following instructions from this way but i ran into this error.
Any idea? |
Convert all source files to Unix line endings and try again - it should resolve this. |
Thank you @phoe , I forgot to change my git settings to checkout as unix line endings. |
This is a known issue between Windows and Lisp code in general. So, basically - Lisp code on Windows needs to have Unix line endings on it, or you can't guarantee that it will compile. |
Hi, I'm trying to build
(no mention of the "bogus form numer" like in https://github.com/takato1314, I don't think I have a line ending problem). With CCL, the error is:
Thanks in advance for any help! |
Thanks for the instruction
|
result:
|
For reference: the build script I'm using (to avoid having to use a make from WSL/MSYS/...). This expects to be in a directory containing:
It also works around an issue with two source files that will fail to compile (during the final buildapp step) when they have CRLF line endings. param (
[string] $Version = '3.6.9',
# pfloader defaults to 16GB, except on windows where it uses 1GB. We default to 8GB as a compromise.
[int] $ImageMemorySize = 8192,
[switch] $NoGit
)
$ErrorActionPreference = 'Stop'
$dep_dir = (Resolve-Path dependencies)
$sbcl_home = (Resolve-Path sbcl-2.3.1)
$sbcl = (Resolve-Path (Join-Path $sbcl_home sbcl.exe))
# FIXME: This naming is intended to match what GitHub supplies as top-level folder in its sources.zip; not sure if that's safe.
$src_dir = "pgloader-$Version"
# 0. Get the source code for the requested version
if (-not (Test-Path -PathType Container $src_dir)) {
if ($NoGit) {
Invoke-WebRequest https://github.com/dimitri/pgloader/archive/refs/tags/v$Version.zip -OutFile pgloader-sources.zip
Expand-Archive -Path pgloader-sources.zip -DestinationPath . -Force
# Without a wait, Remove-Item will fail with "file in use"
Start-Sleep -Seconds 3
Remove-Item pgloader-sources.zip
}
else {
git clone --depth 1 --branch v$Version https://github.com/dimitri/pgloader $src_dir
}
# Some files need to have LF line endings
'src/pgsql/pgsql-trigger.lisp', 'src/sources/csv/csv.lisp' | ForEach-Object {
$file = (Resolve-Path (Join-Path $src_dir $_))
$contents = (Get-Content -Raw $file) -replace "`r`n","`n"
Set-Content -Path $file -Value $contents -NoNewline
}
}
$bin_dir = 'binaries'
if (-not (Test-Path -PathType Container -Path $bin_dir)) {
New-Item -ItemType Directory $bin_dir | Out-Null
}
# Now that they exist, validate them and make them absolute
$bin_dir = (Resolve-Path $bin_dir)
$src_dir = (Resolve-Path $src_dir)
Push-Location $src_dir
try {
# FIXME: These steps assume the build steps from the Makefile of version 3.6.9.
# 1. Set Up QuickLisp if needed
if (-not (Test-Path -PathType Container -Path build\quicklisp)) {
Invoke-WebRequest http://beta.quicklisp.org/quicklisp.lisp -OutFile build\quicklisp.lisp
&$sbcl --noinform --no-sysinit --no-userinit `
--load build\quicklisp.lisp `
--load src/getenv.lisp `
--eval '(quicklisp-quickstart:install :path "build/quicklisp" :proxy (getenv "http_proxy"))' `
--eval '(quit)'
}
# 2. Set Up Dependencies
if (-not (Test-Path -PathType Leaf -Path build\libs.stamp)) {
Copy-Item -Destination $sbcl_home $dep_dir\*.dll
&$sbcl --noinform --no-sysinit --no-userinit `
--load build\quicklisp\setup.lisp `
--eval '(push :pgloader-image *features*)' `
--eval '(setf *print-circle* t *print-pretty* t)' `
--eval ('(push "{0}" ql:*local-project-directories*)' -f (Resolve-Path .)) `
--eval '(ql:quickload "pgloader")' `
--eval '(quit)'
New-Item -ItemType File build\libs.stamp | Out-Null
}
# 3. Write Manifest
if (-not (Test-Path -PathType Leaf -Path build\manifest.ql)) {
&$sbcl --noinform --no-sysinit --no-userinit `
--load build\quicklisp\setup.lisp `
--eval '(ql:write-asdf-manifest-file "build/manifest.ql")' `
--eval '(quit)'
}
# 4. Create buildapp.exe
if (-not (Test-Path -PathType Leaf -Path build\bin\buildapp.exe)) {
&$sbcl --noinform --no-sysinit --no-userinit `
--load build\quicklisp\setup.lisp `
--eval '(ql:quickload "buildapp")' `
--eval '(buildapp:build-buildapp "build/bin/buildapp.exe")' `
--eval '(quit)'
}
# 5. Create pgloader.exe
if (-not (Test-Path -PathType Leaf -Path $bin_dir\pgloader.exe)) {
&.\build\bin\buildapp.exe --logfile build/bin/buildapp.log `
--require sb-posix `
--require sb-bsd-sockets `
--require sb-rotate-byte `
--sbcl $sbcl `
--asdf-path . `
--asdf-tree build/quicklisp/local-projects `
--manifest-file build/manifest.ql `
--asdf-tree build/quicklisp/dists `
--asdf-path . `
--load-system cffi `
--load-system cl+ssl `
--load-system mssql `
--load src/hooks.lisp `
--load-system pgloader `
--entry pgloader:main `
--dynamic-space-size $ImageMemorySize `
--output build/bin/pgloader.exe
Copy-Item -Destination $bin_dir $dep_dir\*.dll
Copy-Item -Destination $bin_dir build\bin\pgloader.exe
}
}
finally {
Pop-Location
} |
One thing to note is that the resulting binary seems to get tied to your machine and user. |
I tried compiling on win10 and spent all day without success. Has anyone succeeded? |
Can you share your project? I wanted to try building on my computer but without success, |
Your binary/exe doesn't work for me so I'm trying to compile it myself. So I think it's true that the binaries are somewhat tied to the machine it was compiled on. Anyway, I'm getting this error. I think it's not the :GO that you mentioned since there's no pgloader binary in build/bin yet.
I tried installing sqlite3 as it seems to suggest but it doesn't work either. My package versions aren't exactly the same as yours since the older versions are no longer available I think (at least it's not an option in the installer). |
Nevermind, I got it working. I needed to download sqlite3.dll and put it in cygwin64/bin. Though I'm not sure if the sqlite3 package I installed in cygwin was necessary. Thank you for the instructions. |
Has anyone successfully installed pgloader on windows ? If yes would you please provide step by step instructions
The text was updated successfully, but these errors were encountered: