mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2025-06-30 05:09:52 +00:00
Compare commits
199 commits
stable
...
v6.2.2-arm
Author | SHA1 | Date | |
---|---|---|---|
|
5219ddd914 | ||
|
6b8ef45843 | ||
|
f3e5ec8030 | ||
|
df21d11d33 | ||
|
1730c5136f | ||
|
06bb29e87d | ||
|
05cc300231 | ||
|
cd65e4dbb9 | ||
|
f5d5bd62ed | ||
|
d2f9888195 | ||
|
5ec5826642 | ||
|
29155ab73a | ||
|
31782600cb | ||
|
db392037ea | ||
|
6ad7189c53 | ||
|
15d8444c74 | ||
|
2d31b853ac | ||
|
3af0108b0d | ||
|
746dd33728 | ||
|
2fceecab37 | ||
|
e094ec5cf5 | ||
|
fbd6012611 | ||
|
913ce4ebfd | ||
|
1e01a961fe | ||
|
27f4a71146 | ||
|
282bca4d81 | ||
|
e5011ad150 | ||
|
0d4d08e52b | ||
|
7f8c7b2d99 | ||
|
f5b666ae6d | ||
|
1cfe51af45 | ||
|
68af58bda1 | ||
|
f51796b81c | ||
|
995618cf1c | ||
|
68baa18af8 | ||
|
a4f1c9c915 | ||
|
b8141c3555 | ||
|
47214e33ea | ||
|
ff239d81e5 | ||
|
0a6e47dd61 | ||
|
ee75219ed3 | ||
|
2e337a753f | ||
|
9918d91def | ||
|
82dd5751c1 | ||
|
de637fab50 | ||
|
cb49f6f01d | ||
|
6d0a83aa58 | ||
|
05f57e98ad | ||
|
6a66525927 | ||
|
9530a6055a | ||
|
f5ed8debcc | ||
|
355d2449c5 | ||
|
f7382cdd6f | ||
|
dc8d10d068 | ||
|
951245d33f | ||
|
521b901cc9 | ||
|
6311ba451b | ||
|
754c76d6fd | ||
|
545f110fb8 | ||
|
4c6387c854 | ||
|
aea7ff1c89 | ||
|
77ac972e09 | ||
|
256f85024f | ||
|
870f9e42dd | ||
|
b3544cfbc3 | ||
|
0a4a3a24e1 | ||
|
8a66390a78 | ||
|
3d48eded3d | ||
|
6546426ec0 | ||
|
4a7ceb00fb | ||
|
53560378bb | ||
|
bfa8717ed4 | ||
|
cdb3b6aafd | ||
|
9f3d3e8ba4 | ||
|
047aad592e | ||
|
087acd9180 | ||
|
0b822e4a5c | ||
|
f8a469488e | ||
|
3b5e806418 | ||
|
79e208193a | ||
|
ef5c13b1c1 | ||
|
38533213d2 | ||
|
5f1aa6fa9d | ||
|
b0002fe07d | ||
|
ef21fd1d26 | ||
|
4a311b9578 | ||
|
b8da5e225b | ||
|
8b3300e197 | ||
|
f27de052cf | ||
|
5cc537f14c | ||
|
dc8ca4cf89 | ||
|
b62dd801f1 | ||
|
0c096e2c89 | ||
|
cc127e56fe | ||
|
1781495ee3 | ||
|
831231d8e6 | ||
|
45102442f4 | ||
|
f323c8e112 | ||
|
3bdc6b5e28 | ||
|
d8373262bc | ||
|
3597d34716 | ||
|
bd4259e89e | ||
|
55ead740cc | ||
|
5ef0eda2d7 | ||
|
49a9b0e7d6 | ||
|
45ada450a2 | ||
|
307a1b3c5e | ||
|
ed6b3bbead | ||
|
901610eec5 | ||
|
7d4127c51d | ||
|
13215d91d7 | ||
|
e1a8099474 | ||
|
daa8d9bb21 | ||
|
5fcbade1bc | ||
|
3937ffa9a6 | ||
|
80ddb50e1c | ||
|
f6e66f1c53 | ||
|
0c23ff9ae3 | ||
|
1570bc2b99 | ||
|
1e2104cabf | ||
|
f3014f258d | ||
|
f0991cc0ba | ||
|
74b78a8d7b | ||
|
82cd70a75c | ||
|
fe4eb7b5af | ||
|
c459e71d02 | ||
|
2516d5a393 | ||
|
477d98d75a | ||
|
4253cd7fb9 | ||
|
ca78958667 | ||
|
1f5b80d560 | ||
|
2de111e76c | ||
|
8343285d93 | ||
|
5dbe2b2745 | ||
|
fb9485190d | ||
|
6881600e06 | ||
|
9ed723bafa | ||
|
9ded1c9821 | ||
|
bb374c68b1 | ||
|
c3e82a6a4e | ||
|
7c12e82042 | ||
|
e7e66ff873 | ||
|
c4d7e5307c | ||
|
d6b9a45a39 | ||
|
7fd3b4d6ba | ||
|
4004aafbc5 | ||
|
95008eeeaf | ||
|
c7a8992043 | ||
|
ea2b5f2ccf | ||
|
ed9f277421 | ||
|
5c14c3b349 | ||
|
d8fb31f167 | ||
|
02db38ffd3 | ||
|
7692195bfa | ||
|
c435cbdc7b | ||
|
effc281271 | ||
|
41eb2e5689 | ||
|
67d74a0a27 | ||
|
c60af078d7 | ||
|
f66405e79b | ||
|
74d186af16 | ||
|
e4fbe66d95 | ||
|
187fef0c5a | ||
|
4782cab507 | ||
|
cb52d75ff0 | ||
|
bcbee67709 | ||
|
2501cbe55d | ||
|
2bd049db87 | ||
|
6b8b9ab4fd | ||
|
30db24265e | ||
|
316d605899 | ||
|
b4257f7767 | ||
|
a3f2d5c919 | ||
|
cf46469cd5 | ||
|
0312fde818 | ||
|
9defa44f0c | ||
|
915b53054c | ||
|
f81557b4fd | ||
|
e273bd1239 | ||
|
a63caf4640 | ||
|
e7f0234134 | ||
|
340552321e | ||
|
98a3fc214d | ||
|
6a578cfe3c | ||
|
dacc075fe8 | ||
|
55418e2bc0 | ||
|
f2b5c0f3a8 | ||
|
5ebdf5dba9 | ||
|
8e045764df | ||
|
503d3d77e6 | ||
|
81bd7d97c5 | ||
|
8f57925067 | ||
|
9bf99db82e | ||
|
5615cdbf1a | ||
|
d802ae0058 | ||
|
8f2278198c | ||
|
10937a5a4e | ||
|
6aff6e9804 | ||
|
95477cae7e |
11 changed files with 506 additions and 890 deletions
8
.github/workflows/build.yml
vendored
8
.github/workflows/build.yml
vendored
|
@ -102,7 +102,7 @@ jobs:
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: Setup Haskell
|
- name: Setup Haskell
|
||||||
uses: haskell-actions/setup@v2
|
uses: haskell/actions/setup@v2
|
||||||
with:
|
with:
|
||||||
ghc-version: ${{ matrix.ghc }}
|
ghc-version: ${{ matrix.ghc }}
|
||||||
cabal-version: "3.10.1.0"
|
cabal-version: "3.10.1.0"
|
||||||
|
@ -230,7 +230,7 @@ jobs:
|
||||||
APPLE_SIMPLEX_NOTARIZATION_APPLE_ID: ${{ secrets.APPLE_SIMPLEX_NOTARIZATION_APPLE_ID }}
|
APPLE_SIMPLEX_NOTARIZATION_APPLE_ID: ${{ secrets.APPLE_SIMPLEX_NOTARIZATION_APPLE_ID }}
|
||||||
APPLE_SIMPLEX_NOTARIZATION_PASSWORD: ${{ secrets.APPLE_SIMPLEX_NOTARIZATION_PASSWORD }}
|
APPLE_SIMPLEX_NOTARIZATION_PASSWORD: ${{ secrets.APPLE_SIMPLEX_NOTARIZATION_PASSWORD }}
|
||||||
run: |
|
run: |
|
||||||
scripts/ci/build-desktop-mac.sh
|
scripts/build-desktop-mac.sh
|
||||||
path=$(echo $PWD/apps/multiplatform/release/main/dmg/SimpleX-*.dmg)
|
path=$(echo $PWD/apps/multiplatform/release/main/dmg/SimpleX-*.dmg)
|
||||||
echo "package_path=$path" >> $GITHUB_OUTPUT
|
echo "package_path=$path" >> $GITHUB_OUTPUT
|
||||||
echo "package_hash=$(echo SHA2-512\(${{ matrix.desktop_asset_name }}\)= $(openssl sha512 $path | cut -d' ' -f 2))" >> $GITHUB_OUTPUT
|
echo "package_hash=$(echo SHA2-512\(${{ matrix.desktop_asset_name }}\)= $(openssl sha512 $path | cut -d' ' -f 2))" >> $GITHUB_OUTPUT
|
||||||
|
@ -310,7 +310,9 @@ jobs:
|
||||||
# Unix /
|
# Unix /
|
||||||
|
|
||||||
# / Windows
|
# / Windows
|
||||||
# rm -rf dist-newstyle/src/direct-sq* is here because of the bug in cabal's dependency which prevents second build from finishing
|
|
||||||
|
# * In powershell multiline commands do not fail if individual commands fail - https://github.community/t/multiline-commands-on-windows-do-not-fail-if-individual-commands-fail/16753
|
||||||
|
# * And GitHub Actions does not support parameterizing shell in a matrix job - https://github.community/t/using-matrix-to-specify-shell-is-it-possible/17065
|
||||||
|
|
||||||
- name: 'Setup MSYS2'
|
- name: 'Setup MSYS2'
|
||||||
if: matrix.os == 'windows-latest'
|
if: matrix.os == 'windows-latest'
|
||||||
|
|
|
@ -71,7 +71,7 @@ if(NOT APPLE)
|
||||||
else()
|
else()
|
||||||
# Without direct linking it can't find hs_init in linking step
|
# Without direct linking it can't find hs_init in linking step
|
||||||
add_library( rts SHARED IMPORTED )
|
add_library( rts SHARED IMPORTED )
|
||||||
FILE(GLOB RTSLIB ${CMAKE_SOURCE_DIR}/libs/${OS_LIB_PATH}-${OS_LIB_ARCH}/libHSrts*_thr-*.${OS_LIB_EXT})
|
FILE(GLOB RTSLIB ${CMAKE_SOURCE_DIR}/libs/${OS_LIB_PATH}-${OS_LIB_ARCH}/deps/libHSrts*_thr-*.${OS_LIB_EXT})
|
||||||
set_target_properties( rts PROPERTIES IMPORTED_LOCATION ${RTSLIB})
|
set_target_properties( rts PROPERTIES IMPORTED_LOCATION ${RTSLIB})
|
||||||
|
|
||||||
target_link_libraries(app-lib rts simplex)
|
target_link_libraries(app-lib rts simplex)
|
||||||
|
|
752
flake.lock
generated
752
flake.lock
generated
|
@ -16,6 +16,21 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"blank": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1625557891,
|
||||||
|
"narHash": "sha256-O8/MWsPBGhhyPoPLHZAuoZiiHo9q6FLlEeIDEXuj6T4=",
|
||||||
|
"owner": "divnix",
|
||||||
|
"repo": "blank",
|
||||||
|
"rev": "5a5d2684073d9f563072ed07c871d577a6c614a8",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "divnix",
|
||||||
|
"repo": "blank",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"cabal-32": {
|
"cabal-32": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
|
@ -83,6 +98,64 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"devshell": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": [
|
||||||
|
"haskellNix",
|
||||||
|
"tullia",
|
||||||
|
"std",
|
||||||
|
"flake-utils"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"haskellNix",
|
||||||
|
"tullia",
|
||||||
|
"std",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1663445644,
|
||||||
|
"narHash": "sha256-+xVlcK60x7VY1vRJbNUEAHi17ZuoQxAIH4S4iUFUGBA=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "devshell",
|
||||||
|
"rev": "e3dc3e21594fe07bdb24bdf1c8657acaa4cb8f66",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "devshell",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"dmerge": {
|
||||||
|
"inputs": {
|
||||||
|
"nixlib": [
|
||||||
|
"haskellNix",
|
||||||
|
"tullia",
|
||||||
|
"std",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"yants": [
|
||||||
|
"haskellNix",
|
||||||
|
"tullia",
|
||||||
|
"std",
|
||||||
|
"yants"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1659548052,
|
||||||
|
"narHash": "sha256-fzI2gp1skGA8mQo/FBFrUAtY0GQkAIAaV/V127TJPyY=",
|
||||||
|
"owner": "divnix",
|
||||||
|
"repo": "data-merge",
|
||||||
|
"rev": "d160d18ce7b1a45b88344aa3f13ed1163954b497",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "divnix",
|
||||||
|
"repo": "data-merge",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"flake-compat": {
|
"flake-compat": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
|
@ -100,34 +173,74 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-parts": {
|
"flake-compat_2": {
|
||||||
"inputs": {
|
"flake": false,
|
||||||
"nixpkgs-lib": "nixpkgs-lib"
|
|
||||||
},
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1698579227,
|
"lastModified": 1650374568,
|
||||||
"narHash": "sha256-KVWjFZky+gRuWennKsbo6cWyo7c/z/VgCte5pR9pEKg=",
|
"narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=",
|
||||||
"owner": "hercules-ci",
|
"owner": "edolstra",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-compat",
|
||||||
"rev": "f76e870d64779109e41370848074ac4eaa1606ec",
|
"rev": "b4a34015c698c7793d592d66adbab377907a2be8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "hercules-ci",
|
"owner": "edolstra",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-compat",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-utils": {
|
"flake-utils": {
|
||||||
"inputs": {
|
|
||||||
"systems": "systems"
|
|
||||||
},
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1701680307,
|
"lastModified": 1676283394,
|
||||||
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
|
"narHash": "sha256-XX2f9c3iySLCw54rJ/CZs+ZK6IQy7GXNY4nSOyu2QG4=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
|
"rev": "3db36a8b464d0c4532ba1c7dda728f4576d6d073",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1667395993,
|
||||||
|
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1653893745,
|
||||||
|
"narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils_4": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1659877975,
|
||||||
|
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -153,51 +266,33 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ghc98X": {
|
"gomod2nix": {
|
||||||
"flake": false,
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs_2",
|
||||||
|
"utils": "utils"
|
||||||
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1715066704,
|
"lastModified": 1655245309,
|
||||||
"narHash": "sha256-F0EVR8x/fcpj1st+hz96Wdsz5uwVIOziGKAwRxLOYJw=",
|
"narHash": "sha256-d/YPoQ/vFn1+GTmSdvbSBSTOai61FONxB4+Lt6w/IVI=",
|
||||||
"ref": "ghc-9.8",
|
"owner": "tweag",
|
||||||
"rev": "78a253543d466ac511a1664a3e6aff032ca684d5",
|
"repo": "gomod2nix",
|
||||||
"revCount": 61757,
|
"rev": "40d32f82fc60d66402eb0972e6e368aeab3faf58",
|
||||||
"submodules": true,
|
"type": "github"
|
||||||
"type": "git",
|
|
||||||
"url": "https://gitlab.haskell.org/ghc/ghc"
|
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"ref": "ghc-9.8",
|
"owner": "tweag",
|
||||||
"submodules": true,
|
"repo": "gomod2nix",
|
||||||
"type": "git",
|
"type": "github"
|
||||||
"url": "https://gitlab.haskell.org/ghc/ghc"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ghc99": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1726585445,
|
|
||||||
"narHash": "sha256-IdwQBex4boY6s0Plj5+ixf36rfYSUyMdTWrztKvZH30=",
|
|
||||||
"ref": "refs/heads/master",
|
|
||||||
"rev": "7fd9e5e29ab54eb406880077463e8552e2ddd39a",
|
|
||||||
"revCount": 67238,
|
|
||||||
"submodules": true,
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://gitlab.haskell.org/ghc/ghc"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"submodules": true,
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://gitlab.haskell.org/ghc/ghc"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"hackage": {
|
"hackage": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1702513363,
|
"lastModified": 1702340598,
|
||||||
"narHash": "sha256-kloro9uEe8aYhPMoMjVNq2rfrXNgMOZhOPwVH5DH2K0=",
|
"narHash": "sha256-CC0HI+6iKPtH+8r/ZfcpW5v/OYvL7zMwpr0xfkXV1zU=",
|
||||||
"owner": "input-output-hk",
|
"owner": "input-output-hk",
|
||||||
"repo": "hackage.nix",
|
"repo": "hackage.nix",
|
||||||
"rev": "a9d931d0398da67846fa257922a924829233cb91",
|
"rev": "24617c569995e38bf3b83b48eec6628a50fdb4fb",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -214,43 +309,33 @@
|
||||||
"cabal-36": "cabal-36",
|
"cabal-36": "cabal-36",
|
||||||
"cardano-shell": "cardano-shell",
|
"cardano-shell": "cardano-shell",
|
||||||
"flake-compat": "flake-compat",
|
"flake-compat": "flake-compat",
|
||||||
|
"flake-utils": "flake-utils_2",
|
||||||
"ghc-8.6.5-iohk": "ghc-8.6.5-iohk",
|
"ghc-8.6.5-iohk": "ghc-8.6.5-iohk",
|
||||||
"ghc98X": "ghc98X",
|
|
||||||
"ghc99": "ghc99",
|
|
||||||
"hackage": [
|
"hackage": [
|
||||||
"hackage"
|
"hackage"
|
||||||
],
|
],
|
||||||
"hls-1.10": "hls-1.10",
|
|
||||||
"hls-2.0": "hls-2.0",
|
|
||||||
"hls-2.2": "hls-2.2",
|
|
||||||
"hls-2.3": "hls-2.3",
|
|
||||||
"hls-2.4": "hls-2.4",
|
|
||||||
"hls-2.5": "hls-2.5",
|
|
||||||
"hls-2.6": "hls-2.6",
|
|
||||||
"hpc-coveralls": "hpc-coveralls",
|
"hpc-coveralls": "hpc-coveralls",
|
||||||
"hydra": "hydra",
|
"hydra": "hydra",
|
||||||
"iserv-proxy": "iserv-proxy",
|
"iserv-proxy": "iserv-proxy",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"haskellNix",
|
"nixpkgs"
|
||||||
"nixpkgs-unstable"
|
|
||||||
],
|
],
|
||||||
"nixpkgs-2003": "nixpkgs-2003",
|
"nixpkgs-2003": "nixpkgs-2003",
|
||||||
"nixpkgs-2105": "nixpkgs-2105",
|
"nixpkgs-2105": "nixpkgs-2105",
|
||||||
"nixpkgs-2111": "nixpkgs-2111",
|
"nixpkgs-2111": "nixpkgs-2111",
|
||||||
"nixpkgs-2205": "nixpkgs-2205",
|
"nixpkgs-2205": "nixpkgs-2205",
|
||||||
"nixpkgs-2211": "nixpkgs-2211",
|
"nixpkgs-2211": "nixpkgs-2211",
|
||||||
"nixpkgs-2305": "nixpkgs-2305",
|
|
||||||
"nixpkgs-2311": "nixpkgs-2311",
|
|
||||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||||
"old-ghc-nix": "old-ghc-nix",
|
"old-ghc-nix": "old-ghc-nix",
|
||||||
"stackage": "stackage"
|
"stackage": "stackage",
|
||||||
|
"tullia": "tullia"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1705833500,
|
"lastModified": 1677975916,
|
||||||
"narHash": "sha256-rUIr6JNbCedt1g4gVYVvE9t0oFU6FUspCA0DS5cA8Bg=",
|
"narHash": "sha256-dbe8lEEPyfzjdRwpePClv7J9p9lQg7BwbBqAMCw4RLw=",
|
||||||
"owner": "input-output-hk",
|
"owner": "input-output-hk",
|
||||||
"repo": "haskell.nix",
|
"repo": "haskell.nix",
|
||||||
"rev": "d0c35e75cbbc6858770af42ac32b0b85495fbd71",
|
"rev": "ab5efd87ce3fd8ade38a01d97693d29a4f1ae7e4",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -260,125 +345,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"hls-1.10": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1680000865,
|
|
||||||
"narHash": "sha256-rc7iiUAcrHxwRM/s0ErEsSPxOR3u8t7DvFeWlMycWgo=",
|
|
||||||
"owner": "haskell",
|
|
||||||
"repo": "haskell-language-server",
|
|
||||||
"rev": "b08691db779f7a35ff322b71e72a12f6e3376fd9",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "haskell",
|
|
||||||
"ref": "1.10.0.0",
|
|
||||||
"repo": "haskell-language-server",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"hls-2.0": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1687698105,
|
|
||||||
"narHash": "sha256-OHXlgRzs/kuJH8q7Sxh507H+0Rb8b7VOiPAjcY9sM1k=",
|
|
||||||
"owner": "haskell",
|
|
||||||
"repo": "haskell-language-server",
|
|
||||||
"rev": "783905f211ac63edf982dd1889c671653327e441",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "haskell",
|
|
||||||
"ref": "2.0.0.1",
|
|
||||||
"repo": "haskell-language-server",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"hls-2.2": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1693064058,
|
|
||||||
"narHash": "sha256-8DGIyz5GjuCFmohY6Fa79hHA/p1iIqubfJUTGQElbNk=",
|
|
||||||
"owner": "haskell",
|
|
||||||
"repo": "haskell-language-server",
|
|
||||||
"rev": "b30f4b6cf5822f3112c35d14a0cba51f3fe23b85",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "haskell",
|
|
||||||
"ref": "2.2.0.0",
|
|
||||||
"repo": "haskell-language-server",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"hls-2.3": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1695910642,
|
|
||||||
"narHash": "sha256-tR58doOs3DncFehHwCLczJgntyG/zlsSd7DgDgMPOkI=",
|
|
||||||
"owner": "haskell",
|
|
||||||
"repo": "haskell-language-server",
|
|
||||||
"rev": "458ccdb55c9ea22cd5d13ec3051aaefb295321be",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "haskell",
|
|
||||||
"ref": "2.3.0.0",
|
|
||||||
"repo": "haskell-language-server",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"hls-2.4": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1699862708,
|
|
||||||
"narHash": "sha256-YHXSkdz53zd0fYGIYOgLt6HrA0eaRJi9mXVqDgmvrjk=",
|
|
||||||
"owner": "haskell",
|
|
||||||
"repo": "haskell-language-server",
|
|
||||||
"rev": "54507ef7e85fa8e9d0eb9a669832a3287ffccd57",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "haskell",
|
|
||||||
"ref": "2.4.0.1",
|
|
||||||
"repo": "haskell-language-server",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"hls-2.5": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1701080174,
|
|
||||||
"narHash": "sha256-fyiR9TaHGJIIR0UmcCb73Xv9TJq3ht2ioxQ2mT7kVdc=",
|
|
||||||
"owner": "haskell",
|
|
||||||
"repo": "haskell-language-server",
|
|
||||||
"rev": "27f8c3d3892e38edaef5bea3870161815c4d014c",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "haskell",
|
|
||||||
"ref": "2.5.0.0",
|
|
||||||
"repo": "haskell-language-server",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"hls-2.6": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1705325287,
|
|
||||||
"narHash": "sha256-+P87oLdlPyMw8Mgoul7HMWdEvWP/fNlo8jyNtwME8E8=",
|
|
||||||
"owner": "haskell",
|
|
||||||
"repo": "haskell-language-server",
|
|
||||||
"rev": "6e0b342fa0327e628610f2711f8c3e4eaaa08b1e",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "haskell",
|
|
||||||
"ref": "2.6.0.0",
|
|
||||||
"repo": "haskell-language-server",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"hpc-coveralls": {
|
"hpc-coveralls": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
|
@ -418,14 +384,37 @@
|
||||||
"type": "indirect"
|
"type": "indirect"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"incl": {
|
||||||
|
"inputs": {
|
||||||
|
"nixlib": [
|
||||||
|
"haskellNix",
|
||||||
|
"tullia",
|
||||||
|
"std",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1669263024,
|
||||||
|
"narHash": "sha256-E/+23NKtxAqYG/0ydYgxlgarKnxmDbg6rCMWnOBqn9Q=",
|
||||||
|
"owner": "divnix",
|
||||||
|
"repo": "incl",
|
||||||
|
"rev": "ce7bebaee048e4cd7ebdb4cee7885e00c4e2abca",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "divnix",
|
||||||
|
"repo": "incl",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"iserv-proxy": {
|
"iserv-proxy": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1707968597,
|
"lastModified": 1670983692,
|
||||||
"narHash": "sha256-C53NqToxl+n9s1pQ0iLtiH6P5vX3rM+NW/mFt4Ykpsk=",
|
"narHash": "sha256-avLo34JnI9HNyOuauK5R69usJm+GfW3MlyGlYxZhTgY=",
|
||||||
"ref": "hkm/remote-iserv",
|
"ref": "hkm/remote-iserv",
|
||||||
"rev": "1b7f8aeb37bbc7c00f04e44d9379aa15a4409e8b",
|
"rev": "50d0abb3317ac439a4e7495b185a64af9b7b9300",
|
||||||
"revCount": 18,
|
"revCount": 10,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://gitlab.haskell.org/hamishmack/iserv-proxy.git"
|
"url": "https://gitlab.haskell.org/hamishmack/iserv-proxy.git"
|
||||||
},
|
},
|
||||||
|
@ -451,22 +440,32 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"mac2ios": {
|
"n2c": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": "flake-parts",
|
"flake-utils": [
|
||||||
"nixpkgs": "nixpkgs_2"
|
"haskellNix",
|
||||||
|
"tullia",
|
||||||
|
"std",
|
||||||
|
"flake-utils"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"haskellNix",
|
||||||
|
"tullia",
|
||||||
|
"std",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1699767871,
|
"lastModified": 1665039323,
|
||||||
"narHash": "sha256-kxeCUfwC/Vgh2FvVMlBUq0eVx1JvfHyN+5MPKUik9mE=",
|
"narHash": "sha256-SAh3ZjFGsaCI8FRzXQyp56qcGdAqgKEfJWPCQ0Sr7tQ=",
|
||||||
"owner": "zw3rk",
|
"owner": "nlewo",
|
||||||
"repo": "mobile-core-tools",
|
"repo": "nix2container",
|
||||||
"rev": "4dcb77d5ea896d749381806dfab5358851b08951",
|
"rev": "b008fe329ffb59b67bf9e7b08ede6ee792f2741a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "zw3rk",
|
"owner": "nlewo",
|
||||||
"repo": "mobile-core-tools",
|
"repo": "nix2container",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -491,6 +490,95 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nix-nomad": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat_2",
|
||||||
|
"flake-utils": [
|
||||||
|
"haskellNix",
|
||||||
|
"tullia",
|
||||||
|
"nix2container",
|
||||||
|
"flake-utils"
|
||||||
|
],
|
||||||
|
"gomod2nix": "gomod2nix",
|
||||||
|
"nixpkgs": [
|
||||||
|
"haskellNix",
|
||||||
|
"tullia",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"nixpkgs-lib": [
|
||||||
|
"haskellNix",
|
||||||
|
"tullia",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1658277770,
|
||||||
|
"narHash": "sha256-T/PgG3wUn8Z2rnzfxf2VqlR1CBjInPE0l1yVzXxPnt0=",
|
||||||
|
"owner": "tristanpemble",
|
||||||
|
"repo": "nix-nomad",
|
||||||
|
"rev": "054adcbdd0a836ae1c20951b67ed549131fd2d70",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tristanpemble",
|
||||||
|
"repo": "nix-nomad",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nix2container": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils_3",
|
||||||
|
"nixpkgs": "nixpkgs_3"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1658567952,
|
||||||
|
"narHash": "sha256-XZ4ETYAMU7XcpEeAFP3NOl9yDXNuZAen/aIJ84G+VgA=",
|
||||||
|
"owner": "nlewo",
|
||||||
|
"repo": "nix2container",
|
||||||
|
"rev": "60bb43d405991c1378baf15a40b5811a53e32ffa",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nlewo",
|
||||||
|
"repo": "nix2container",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixago": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": [
|
||||||
|
"haskellNix",
|
||||||
|
"tullia",
|
||||||
|
"std",
|
||||||
|
"flake-utils"
|
||||||
|
],
|
||||||
|
"nixago-exts": [
|
||||||
|
"haskellNix",
|
||||||
|
"tullia",
|
||||||
|
"std",
|
||||||
|
"blank"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"haskellNix",
|
||||||
|
"tullia",
|
||||||
|
"std",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1661824785,
|
||||||
|
"narHash": "sha256-/PnwdWoO/JugJZHtDUioQp3uRiWeXHUdgvoyNbXesz8=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixago",
|
||||||
|
"rev": "8c1f9e5f1578d4b2ea989f618588d62a335083c3",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixago",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1657693803,
|
"lastModified": 1657693803,
|
||||||
|
@ -557,11 +645,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-2205": {
|
"nixpkgs-2205": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1685573264,
|
"lastModified": 1672580127,
|
||||||
"narHash": "sha256-Zffu01pONhs/pqH07cjlF10NnMDLok8ix5Uk4rhOnZQ=",
|
"narHash": "sha256-3lW3xZslREhJogoOkjeZtlBtvFMyxHku7I/9IVehhT8=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "380be19fbd2d9079f677978361792cb25e8a3635",
|
"rev": "0874168639713f547c05947c76124f78441ea46c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -573,11 +661,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-2211": {
|
"nixpkgs-2211": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1688392541,
|
"lastModified": 1675730325,
|
||||||
"narHash": "sha256-lHrKvEkCPTUO+7tPfjIcb7Trk6k31rz18vkyqmkeJfY=",
|
"narHash": "sha256-uNvD7fzO5hNlltNQUAFBPlcEjNG5Gkbhl/ROiX+GZU4=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "ea4c80b39be4c09702b0cb3b42eab59e2ba4f24b",
|
"rev": "b7ce17b1ebf600a72178f6302c77b6382d09323f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -587,56 +675,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-2305": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1705033721,
|
|
||||||
"narHash": "sha256-K5eJHmL1/kev6WuqyqqbS1cdNnSidIZ3jeqJ7GbrYnQ=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "a1982c92d8980a0114372973cbdfe0a307f1bdea",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixpkgs-23.05-darwin",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs-2311": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1719957072,
|
|
||||||
"narHash": "sha256-gvFhEf5nszouwLAkT9nWsDzocUTqLWHuL++dvNjMp9I=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "7144d6241f02d171d25fba3edeaf15e0f2592105",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixpkgs-23.11-darwin",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs-lib": {
|
|
||||||
"locked": {
|
|
||||||
"dir": "lib",
|
|
||||||
"lastModified": 1696019113,
|
|
||||||
"narHash": "sha256-X3+DKYWJm93DRSdC5M6K5hLqzSya9BjibtBsuARoPco=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "f5892ddac112a1e9b3612c39af1b72987ee5783a",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"dir": "lib",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixos-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs-regression": {
|
"nixpkgs-regression": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1643052045,
|
"lastModified": 1643052045,
|
||||||
|
@ -655,36 +693,98 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-unstable": {
|
"nixpkgs-unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1694822471,
|
"lastModified": 1675758091,
|
||||||
"narHash": "sha256-6fSDCj++lZVMZlyqOe9SIOL8tYSBz1bI8acwovRwoX8=",
|
"narHash": "sha256-7gFSQbSVAFUHtGCNHPF7mPc5CcqDk9M2+inlVPZSneg=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "47585496bcb13fb72e4a90daeea2f434e2501998",
|
"rev": "747927516efcb5e31ba03b7ff32f61f6d47e7d87",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
|
"ref": "nixpkgs-unstable",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "47585496bcb13fb72e4a90daeea2f434e2501998",
|
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1698434055,
|
"lastModified": 1653581809,
|
||||||
"narHash": "sha256-Phxi5mUKSoL7A0IYUiYtkI9e8NcGaaV5PJEaJApU1Ko=",
|
"narHash": "sha256-Uvka0V5MTGbeOfWte25+tfRL3moECDh1VwokWSZUdoY=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "1a3c95e3b23b3cdb26750621c08cc2f1560cb883",
|
"rev": "83658b28fe638a170a19b8933aa008b30640fbd1",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"ref": "nixos-23.05",
|
"ref": "nixos-unstable",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixpkgs_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1654807842,
|
||||||
|
"narHash": "sha256-ADymZpr6LuTEBXcy6RtFHcUZdjKTBRTMYwu19WOx17E=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "fc909087cc3386955f21b4665731dbdaceefb1d8",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_4": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1665087388,
|
||||||
|
"narHash": "sha256-FZFPuW9NWHJteATOf79rZfwfRn5fE0wi9kRzvGfDHPA=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "95fda953f6db2e9496d2682c4fc7b82f959878f7",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixpkgs-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_5": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1676726892,
|
||||||
|
"narHash": "sha256-M7OYVR6dKmzmlebIjybFf3l18S2uur8lMyWWnHQooLY=",
|
||||||
|
"owner": "angerman",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "729469087592bdea58b360de59dadf6d58714c42",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "angerman",
|
||||||
|
"ref": "release-22.11",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nosys": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1667881534,
|
||||||
|
"narHash": "sha256-FhwJ15uPLRsvaxtt/bNuqE/ykMpNAPF0upozFKhTtXM=",
|
||||||
|
"owner": "divnix",
|
||||||
|
"repo": "nosys",
|
||||||
|
"rev": "2d0d5207f6a230e9d0f660903f8db9807b54814f",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "divnix",
|
||||||
|
"repo": "nosys",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"old-ghc-nix": {
|
"old-ghc-nix": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
|
@ -707,21 +807,17 @@
|
||||||
"flake-utils": "flake-utils",
|
"flake-utils": "flake-utils",
|
||||||
"hackage": "hackage",
|
"hackage": "hackage",
|
||||||
"haskellNix": "haskellNix",
|
"haskellNix": "haskellNix",
|
||||||
"mac2ios": "mac2ios",
|
"nixpkgs": "nixpkgs_5"
|
||||||
"nixpkgs": [
|
|
||||||
"haskellNix",
|
|
||||||
"nixpkgs-2305"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"stackage": {
|
"stackage": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1726532152,
|
"lastModified": 1677888571,
|
||||||
"narHash": "sha256-LRXbVY3M2S8uQWdwd2zZrsnVPEvt2GxaHGoy8EFFdJA=",
|
"narHash": "sha256-YkhRNOaN6QVagZo1cfykYV8KqkI8/q6r2F5+jypOma4=",
|
||||||
"owner": "input-output-hk",
|
"owner": "input-output-hk",
|
||||||
"repo": "stackage.nix",
|
"repo": "stackage.nix",
|
||||||
"rev": "c77b3530cebad603812cb111c6f64968c2d2337d",
|
"rev": "cb50e6fabdfb2d7e655059039012ad0623f06a27",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -730,18 +826,110 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems": {
|
"std": {
|
||||||
|
"inputs": {
|
||||||
|
"arion": [
|
||||||
|
"haskellNix",
|
||||||
|
"tullia",
|
||||||
|
"std",
|
||||||
|
"blank"
|
||||||
|
],
|
||||||
|
"blank": "blank",
|
||||||
|
"devshell": "devshell",
|
||||||
|
"dmerge": "dmerge",
|
||||||
|
"flake-utils": "flake-utils_4",
|
||||||
|
"incl": "incl",
|
||||||
|
"makes": [
|
||||||
|
"haskellNix",
|
||||||
|
"tullia",
|
||||||
|
"std",
|
||||||
|
"blank"
|
||||||
|
],
|
||||||
|
"microvm": [
|
||||||
|
"haskellNix",
|
||||||
|
"tullia",
|
||||||
|
"std",
|
||||||
|
"blank"
|
||||||
|
],
|
||||||
|
"n2c": "n2c",
|
||||||
|
"nixago": "nixago",
|
||||||
|
"nixpkgs": "nixpkgs_4",
|
||||||
|
"nosys": "nosys",
|
||||||
|
"yants": "yants"
|
||||||
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1681028828,
|
"lastModified": 1674526466,
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
"narHash": "sha256-tMTaS0bqLx6VJ+K+ZT6xqsXNpzvSXJTmogkraBGzymg=",
|
||||||
"owner": "nix-systems",
|
"owner": "divnix",
|
||||||
"repo": "default",
|
"repo": "std",
|
||||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
"rev": "516387e3d8d059b50e742a2ff1909ed3c8f82826",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-systems",
|
"owner": "divnix",
|
||||||
"repo": "default",
|
"repo": "std",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tullia": {
|
||||||
|
"inputs": {
|
||||||
|
"nix-nomad": "nix-nomad",
|
||||||
|
"nix2container": "nix2container",
|
||||||
|
"nixpkgs": [
|
||||||
|
"haskellNix",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"std": "std"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1675695930,
|
||||||
|
"narHash": "sha256-B7rEZ/DBUMlK1AcJ9ajnAPPxqXY6zW2SBX+51bZV0Ac=",
|
||||||
|
"owner": "input-output-hk",
|
||||||
|
"repo": "tullia",
|
||||||
|
"rev": "621365f2c725608f381b3ad5b57afef389fd4c31",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "input-output-hk",
|
||||||
|
"repo": "tullia",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"utils": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1653893745,
|
||||||
|
"narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"yants": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"haskellNix",
|
||||||
|
"tullia",
|
||||||
|
"std",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1667096281,
|
||||||
|
"narHash": "sha256-wRRec6ze0gJHmGn6m57/zhz/Kdvp9HS4Nl5fkQ+uIuA=",
|
||||||
|
"owner": "divnix",
|
||||||
|
"repo": "yants",
|
||||||
|
"rev": "d18f356ec25cb94dc9c275870c3a7927a10f8c3c",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "divnix",
|
||||||
|
"repo": "yants",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
302
flake.nix
302
flake.nix
|
@ -1,15 +1,15 @@
|
||||||
{
|
{
|
||||||
description = "nix flake for simplex-chat";
|
description = "nix flake for simplex-chat";
|
||||||
|
inputs.nixpkgs.url = "github:angerman/nixpkgs/release-22.11";
|
||||||
inputs.haskellNix.url = "github:input-output-hk/haskell.nix/armv7a";
|
inputs.haskellNix.url = "github:input-output-hk/haskell.nix/armv7a";
|
||||||
inputs.nixpkgs.follows = "haskellNix/nixpkgs-2305";
|
inputs.haskellNix.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
inputs.mac2ios.url = "github:zw3rk/mobile-core-tools";
|
|
||||||
inputs.hackage = {
|
inputs.hackage = {
|
||||||
url = "github:input-output-hk/hackage.nix";
|
url = "github:input-output-hk/hackage.nix";
|
||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
inputs.haskellNix.inputs.hackage.follows = "hackage";
|
inputs.haskellNix.inputs.hackage.follows = "hackage";
|
||||||
inputs.flake-utils.url = "github:numtide/flake-utils";
|
inputs.flake-utils.url = "github:numtide/flake-utils";
|
||||||
outputs = { self, haskellNix, nixpkgs, flake-utils, mac2ios, ... }:
|
outputs = { self, haskellNix, nixpkgs, flake-utils, ... }:
|
||||||
let systems = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ]; in
|
let systems = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ]; in
|
||||||
flake-utils.lib.eachSystem systems (system:
|
flake-utils.lib.eachSystem systems (system:
|
||||||
# this android26 overlay makes the pkgsCross.{aarch64-android,armv7a-android-prebuilt} to set stdVer to 26 (Android 8).
|
# this android26 overlay makes the pkgsCross.{aarch64-android,armv7a-android-prebuilt} to set stdVer to 26 (Android 8).
|
||||||
|
@ -30,7 +30,7 @@
|
||||||
# `appendOverlays` with a singleton is identical to `extend`.
|
# `appendOverlays` with a singleton is identical to `extend`.
|
||||||
let pkgs = haskellNix.legacyPackages.${system}.appendOverlays [android26]; in
|
let pkgs = haskellNix.legacyPackages.${system}.appendOverlays [android26]; in
|
||||||
let drv' = { extra-modules, pkgs', ... }: pkgs'.haskell-nix.project {
|
let drv' = { extra-modules, pkgs', ... }: pkgs'.haskell-nix.project {
|
||||||
compiler-nix-name = "ghc963";
|
compiler-nix-name = "ghc8107";
|
||||||
index-state = "2023-12-12T00:00:00Z";
|
index-state = "2023-12-12T00:00:00Z";
|
||||||
# We need this, to specify we want the cabal project.
|
# We need this, to specify we want the cabal project.
|
||||||
# If the stack.yaml was dropped, this would not be necessary.
|
# If the stack.yaml was dropped, this would not be necessary.
|
||||||
|
@ -40,12 +40,9 @@
|
||||||
src = ./.;
|
src = ./.;
|
||||||
};
|
};
|
||||||
sha256map = import ./scripts/nix/sha256map.nix;
|
sha256map = import ./scripts/nix/sha256map.nix;
|
||||||
modules = [
|
modules = [{
|
||||||
({ pkgs, lib, ...}: lib.mkIf (!pkgs.stdenv.hostPlatform.isWindows) {
|
|
||||||
# This patch adds `dl` as an extra-library to direct-sqlciper, which is needed
|
|
||||||
# on pretty much all unix platforms, but then blows up on windows m(
|
|
||||||
packages.direct-sqlcipher.patches = [ ./scripts/nix/direct-sqlcipher-2.3.27.patch ];
|
packages.direct-sqlcipher.patches = [ ./scripts/nix/direct-sqlcipher-2.3.27.patch ];
|
||||||
})
|
}
|
||||||
({ pkgs,lib, ... }: lib.mkIf (pkgs.stdenv.hostPlatform.isAndroid) {
|
({ pkgs,lib, ... }: lib.mkIf (pkgs.stdenv.hostPlatform.isAndroid) {
|
||||||
packages.simplex-chat.components.library.ghcOptions = [ "-pie" ];
|
packages.simplex-chat.components.library.ghcOptions = [ "-pie" ];
|
||||||
})] ++ extra-modules;
|
})] ++ extra-modules;
|
||||||
|
@ -67,9 +64,6 @@
|
||||||
}); in
|
}); in
|
||||||
let iosPostInstall = bundleName: ''
|
let iosPostInstall = bundleName: ''
|
||||||
${pkgs.tree}/bin/tree $out
|
${pkgs.tree}/bin/tree $out
|
||||||
mkdir tmp
|
|
||||||
find ./dist -name "libHS*-ghc*.a" -exec cp {} tmp \;
|
|
||||||
(cd tmp; ${pkgs.tree}/bin/tree .; ar x libHS*.a; for o in *.o; do if /usr/bin/otool -xv $o|grep ldadd ; then echo $o; fi; done; cd ..; rm -fR tmp)
|
|
||||||
mkdir -p $out/_pkg
|
mkdir -p $out/_pkg
|
||||||
# copy over includes, we might want those, but maybe not.
|
# copy over includes, we might want those, but maybe not.
|
||||||
# cp -r $out/lib/*/*/include $out/_pkg/
|
# cp -r $out/lib/*/*/include $out/_pkg/
|
||||||
|
@ -80,18 +74,6 @@
|
||||||
find ${pkgs.gmp6.override { withStatic = true; }}/lib -name "*.a" -exec cp {} $out/_pkg \;
|
find ${pkgs.gmp6.override { withStatic = true; }}/lib -name "*.a" -exec cp {} $out/_pkg \;
|
||||||
# There is no static libc
|
# There is no static libc
|
||||||
${pkgs.tree}/bin/tree $out/_pkg
|
${pkgs.tree}/bin/tree $out/_pkg
|
||||||
for pkg in $out/_pkg/*.a; do
|
|
||||||
chmod +w $pkg
|
|
||||||
${mac2ios.packages.${system}.mac2ios}/bin/mac2ios $pkg
|
|
||||||
chmod -w $pkg
|
|
||||||
done
|
|
||||||
|
|
||||||
mkdir tmp
|
|
||||||
find $out/_pkg -name "libHS*-ghc*.a" -exec cp {} tmp \;
|
|
||||||
(cd tmp; ${pkgs.tree}/bin/tree .; ar x libHS*.a; for o in *.o; do if /usr/bin/otool -xv $o|grep ldadd ; then echo $o; fi; done; cd ..; rm -fR tmp)
|
|
||||||
|
|
||||||
sha256sum $out/_pkg/*.a
|
|
||||||
|
|
||||||
(cd $out/_pkg; ${pkgs.zip}/bin/zip -r -9 $out/${bundleName}.zip *)
|
(cd $out/_pkg; ${pkgs.zip}/bin/zip -r -9 $out/${bundleName}.zip *)
|
||||||
rm -fR $out/_pkg
|
rm -fR $out/_pkg
|
||||||
mkdir -p $out/nix-support
|
mkdir -p $out/nix-support
|
||||||
|
@ -137,150 +119,13 @@
|
||||||
hardeningDisable = [ "fortify" ];
|
hardeningDisable = [ "fortify" ];
|
||||||
}
|
}
|
||||||
);in {
|
);in {
|
||||||
# STATIC x86_64-linux
|
|
||||||
"${pkgs.pkgsCross.musl64.hostPlatform.system}-static:exe:simplex-chat" = (drv pkgs.pkgsCross.musl64).simplex-chat.components.exes.simplex-chat;
|
"${pkgs.pkgsCross.musl64.hostPlatform.system}-static:exe:simplex-chat" = (drv pkgs.pkgsCross.musl64).simplex-chat.components.exes.simplex-chat;
|
||||||
# STATIC i686-linux
|
"${pkgs.pkgsCross.musl32.hostPlatform.system}-static:exe:simplex-chat" = (drv pkgs.pkgsCross.musl32).simplex-chat.components.exes.simplex-chat;
|
||||||
"${pkgs.pkgsCross.musl32.hostPlatform.system}-static:exe:simplex-chat" = (drv' {
|
|
||||||
pkgs' = pkgs.pkgsCross.musl32;
|
|
||||||
extra-modules = [{
|
|
||||||
# 32 bit patches
|
|
||||||
packages.basement.patches = [
|
|
||||||
./scripts/nix/basement-pr-573.patch
|
|
||||||
];
|
|
||||||
packages.memory.patches = [
|
|
||||||
./scripts/nix/memory-pr-99.patch
|
|
||||||
];
|
|
||||||
}];
|
|
||||||
}).simplex-chat.components.exes.simplex-chat;
|
|
||||||
# WINDOWS x86_64-mingwW64
|
|
||||||
"${pkgs.pkgsCross.mingwW64.hostPlatform.system}:exe:simplex-chat" = (drv' {
|
|
||||||
pkgs' = pkgs.pkgsCross.mingwW64;
|
|
||||||
extra-modules = [{
|
|
||||||
packages.direct-sqlcipher.flags.openssl = true;
|
|
||||||
packages.bitvec.flags.simd = false;
|
|
||||||
packages.direct-sqlcipher.patches = [
|
|
||||||
./scripts/nix/direct-sqlcipher-2.3.27-win.patch
|
|
||||||
];
|
|
||||||
packages.direct-sqlcipher.components.library.libs = pkgs.lib.mkForce [
|
|
||||||
(pkgs.pkgsCross.mingwW64.openssl) #.override) # { static = true; enableKTLS = false; })
|
|
||||||
];
|
|
||||||
packages.simplexmq.components.library.libs = pkgs.lib.mkForce [
|
|
||||||
(pkgs.pkgsCross.mingwW64.openssl) #.override) # { static = true; enableKTLS = false; })
|
|
||||||
];
|
|
||||||
packages.unix-time.postPatch = ''
|
|
||||||
sed -i 's/mingwex//g' unix-time.cabal
|
|
||||||
'';
|
|
||||||
}];
|
|
||||||
}).simplex-chat.components.exes.simplex-chat.override {
|
|
||||||
postInstall = ''
|
|
||||||
set -x
|
|
||||||
${pkgs.tree}/bin/tree $out
|
|
||||||
mkdir -p $out/_pkg
|
|
||||||
cp $out/bin/* $out/_pkg
|
|
||||||
${pkgs.tree}/bin/tree $out/_pkg
|
|
||||||
(cd $out/_pkg; ${pkgs.zip}/bin/zip -r -9 $out/${pkgs.pkgsCross.mingwW64.hostPlatform.system}-simplex-chat.zip *)
|
|
||||||
rm -fR $out/_pkg
|
|
||||||
mkdir -p $out/nix-support
|
|
||||||
echo "file binary-dist \"$(echo $out/*.zip)\"" \
|
|
||||||
> $out/nix-support/hydra-build-products
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
"${pkgs.pkgsCross.mingwW64.hostPlatform.system}:lib:simplex-chat" = (drv' rec {
|
|
||||||
pkgs' = pkgs.pkgsCross.mingwW64;
|
|
||||||
extra-modules = [{
|
|
||||||
packages.direct-sqlcipher.flags.openssl = true;
|
|
||||||
# simd will try to read __cpu_model, which we don't expose
|
|
||||||
# from the rts (yet!).
|
|
||||||
packages.bitvec.flags.simd = false;
|
|
||||||
packages.direct-sqlcipher.patches = [
|
|
||||||
./scripts/nix/direct-sqlcipher-2.3.27-win.patch
|
|
||||||
];
|
|
||||||
packages.direct-sqlcipher.components.library.libs = pkgs.lib.mkForce [
|
|
||||||
pkgs.pkgsCross.mingwW64.openssl
|
|
||||||
];
|
|
||||||
packages.simplexmq.flags.client_library = true;
|
|
||||||
packages.simplexmq.components.library.libs = pkgs.lib.mkForce [
|
|
||||||
pkgs.pkgsCross.mingwW64.openssl
|
|
||||||
];
|
|
||||||
packages.unix-time.postPatch = ''
|
|
||||||
sed -i 's/mingwex//g' unix-time.cabal
|
|
||||||
'';
|
|
||||||
}];
|
|
||||||
}).simplex-chat.components.library
|
|
||||||
.override (p: {
|
|
||||||
# enableShared = false;
|
|
||||||
setupBuildFlags = p.component.setupBuildFlags ++ map (x: "--ghc-option=${x}") [
|
|
||||||
"-shared"
|
|
||||||
"-threaded"
|
|
||||||
"-o" "libsimplex.dll"
|
|
||||||
# "-optl-lHSrts_thr"
|
|
||||||
"-optl-lffi"
|
|
||||||
# "-optl-static-libgcc"
|
|
||||||
# We can't do -optl-static-libstdc++ with gcc. g++ might
|
|
||||||
# but then we are chaning the compiler altogether.
|
|
||||||
"${./libsimplex.dll.def}"
|
|
||||||
];
|
|
||||||
postInstall = ''
|
|
||||||
set -x
|
|
||||||
function deps() {
|
|
||||||
${pkgs.binutils}/bin/strings "$1" | grep '.\.dll'|grep -v -E 'Winsock|ADVAPI32|dbghelp|KERNEL32|msvcrt|ntdll|ole32|RPCRT4|SHELL32|USER32|WINMM|WS2_32|kernel32|GDI32'|grep -v "$1"
|
|
||||||
}
|
|
||||||
${pkgs.tree}/bin/tree $out
|
|
||||||
mkdir -p $out/_pkg
|
|
||||||
cp libsimplex.dll $out/_pkg
|
|
||||||
cp libsimplex.dll.a $out/_pkg
|
|
||||||
mkdir $out/libs
|
|
||||||
find ${pkgs.lib.getBin pkgs.pkgsCross.mingwW64.openssl} -name "*.dll" -exec cp {} $out/libs \;
|
|
||||||
find ${pkgs.lib.getBin pkgs.pkgsCross.mingwW64.libffi} -name "*.dll" -exec cp {} $out/libs \;
|
|
||||||
find ${pkgs.lib.getBin pkgs.pkgsCross.mingwW64.gmp} -name "*.dll" -exec cp {} $out/libs \;
|
|
||||||
find ${pkgs.lib.getBin pkgs.pkgsCross.mingwW64.stdenv.cc.cc} -name "*.dll" -exec cp {} $out/libs \;
|
|
||||||
find ${pkgs.lib.getBin pkgs.pkgsCross.mingwW64.windows.mcfgthreads} -name "*.dll" -exec cp {} $out/libs \;
|
|
||||||
|
|
||||||
pushd $out/_pkg
|
|
||||||
function copyDeps() {
|
|
||||||
for dep in $(deps "$1"); do
|
|
||||||
if [ ! -f "$dep" ]; then
|
|
||||||
if [ ! -f ../libs/"$dep" ]; then
|
|
||||||
echo "WARN: $1 -> $dep not found!"
|
|
||||||
else
|
|
||||||
cp ../libs/"$dep" .
|
|
||||||
copyDeps "$dep"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
}
|
|
||||||
copyDeps libsimplex.dll
|
|
||||||
popd
|
|
||||||
${pkgs.tree}/bin/tree $out/_pkg
|
|
||||||
(cd $out/_pkg; ${pkgs.zip}/bin/zip -r -9 $out/pkg-${pkgs.pkgsCross.mingwW64.hostPlatform.system}-libsimplex.zip *)
|
|
||||||
rm -fR $out/_pkg
|
|
||||||
mkdir -p $out/nix-support
|
|
||||||
echo "file binary-dist \"$(echo $out/*.zip)\"" \
|
|
||||||
> $out/nix-support/hydra-build-products
|
|
||||||
'';
|
|
||||||
});
|
|
||||||
# "${pkgs.pkgsCross.muslpi.hostPlatform.system}-static:exe:simplex-chat" = (drv pkgs.pkgsCross.muslpi).simplex-chat.components.exes.simplex-chat;
|
# "${pkgs.pkgsCross.muslpi.hostPlatform.system}-static:exe:simplex-chat" = (drv pkgs.pkgsCross.muslpi).simplex-chat.components.exes.simplex-chat;
|
||||||
|
|
||||||
# STATIC aarch64-linux
|
|
||||||
"${pkgs.pkgsCross.aarch64-multiplatform-musl.hostPlatform.system}-static:exe:simplex-chat" = (drv pkgs.pkgsCross.aarch64-multiplatform-musl).simplex-chat.components.exes.simplex-chat;
|
"${pkgs.pkgsCross.aarch64-multiplatform-musl.hostPlatform.system}-static:exe:simplex-chat" = (drv pkgs.pkgsCross.aarch64-multiplatform-musl).simplex-chat.components.exes.simplex-chat;
|
||||||
"armv7a-android:lib:support" = (drv android32Pkgs).android-support.components.library.override (p: {
|
"armv7a-android:lib:support" = (drv android32Pkgs).android-support.components.library.override {
|
||||||
smallAddressSpace = true;
|
smallAddressSpace = true; enableShared = false;
|
||||||
# we won't want -dyamic (see aarch64-android:lib:simplex-chat)
|
setupBuildFlags = map (x: "--ghc-option=${x}") [ "-shared" "-o" "libsupport.so" ];
|
||||||
enableShared = false;
|
|
||||||
# we also do not want to have any dependencies listed (especially no rts!)
|
|
||||||
enableStatic = false;
|
|
||||||
|
|
||||||
# This used to work with 8.10.7...
|
|
||||||
# setupBuildFlags = p.component.setupBuildFlags ++ map (x: "--ghc-option=${x}") [ "-shared" "-o" "libsupport.so" ];
|
|
||||||
# ... but now with 9.6+
|
|
||||||
# we have to do the -shared thing by hand.
|
|
||||||
postBuild = ''
|
|
||||||
armv7a-unknown-linux-androideabi-ghc -shared -o libsupport.so \
|
|
||||||
-optl-Wl,-u,setLineBuffering \
|
|
||||||
-optl-Wl,-u,pipe_std_to_socket \
|
|
||||||
dist/build/*.a
|
|
||||||
'';
|
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
|
|
||||||
mkdir -p $out/_pkg
|
mkdir -p $out/_pkg
|
||||||
|
@ -293,29 +138,14 @@
|
||||||
echo "file binary-dist \"$(echo $out/*.zip)\"" \
|
echo "file binary-dist \"$(echo $out/*.zip)\"" \
|
||||||
> $out/nix-support/hydra-build-products
|
> $out/nix-support/hydra-build-products
|
||||||
'';
|
'';
|
||||||
});
|
};
|
||||||
# The android-support package is at
|
"aarch64-android:lib:support" = (drv androidPkgs).android-support.components.library.override {
|
||||||
# https://github.com/simplex-chat/android-support
|
smallAddressSpace = true; enableShared = false;
|
||||||
"aarch64-android:lib:support" = (drv androidPkgs).android-support.components.library.override (p: {
|
setupBuildFlags = map (x: "--ghc-option=${x}") [ "-shared" "-o" "libsupport.so" ];
|
||||||
smallAddressSpace = true;
|
|
||||||
# no -dynamic
|
|
||||||
enableShared = false;
|
|
||||||
# but also no -staticlib
|
|
||||||
enableStatic = false;
|
|
||||||
|
|
||||||
# we have to do the -shared thing by hand.
|
|
||||||
postBuild = ''
|
|
||||||
aarch64-unknown-linux-android-ghc -shared -o libsupport.so \
|
|
||||||
-optl-Wl,-u,setLineBuffering \
|
|
||||||
-optl-Wl,-u,pipe_std_to_socket \
|
|
||||||
dist/build/*.a
|
|
||||||
'';
|
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
|
|
||||||
mkdir -p $out/_pkg
|
mkdir -p $out/_pkg
|
||||||
cp libsupport.so $out/_pkg
|
cp libsupport.so $out/_pkg
|
||||||
ls -lah $out/_pkg/*
|
|
||||||
${pkgs.patchelf}/bin/patchelf --remove-needed libunwind.so.1 $out/_pkg/libsupport.so
|
${pkgs.patchelf}/bin/patchelf --remove-needed libunwind.so.1 $out/_pkg/libsupport.so
|
||||||
(cd $out/_pkg; ${pkgs.zip}/bin/zip -r -9 $out/pkg-aarch64-android-libsupport.zip *)
|
(cd $out/_pkg; ${pkgs.zip}/bin/zip -r -9 $out/pkg-aarch64-android-libsupport.zip *)
|
||||||
rm -fR $out/_pkg
|
rm -fR $out/_pkg
|
||||||
|
@ -324,11 +154,10 @@
|
||||||
echo "file binary-dist \"$(echo $out/*.zip)\"" \
|
echo "file binary-dist \"$(echo $out/*.zip)\"" \
|
||||||
> $out/nix-support/hydra-build-products
|
> $out/nix-support/hydra-build-products
|
||||||
'';
|
'';
|
||||||
});
|
};
|
||||||
"armv7a-android:lib:simplex-chat" = (drv' {
|
"armv7a-android:lib:simplex-chat" = (drv' {
|
||||||
pkgs' = android32Pkgs;
|
pkgs' = android32Pkgs;
|
||||||
extra-modules = [{
|
extra-modules = [{
|
||||||
packages.text.flags.simdutf = false;
|
|
||||||
packages.direct-sqlcipher.flags.openssl = true;
|
packages.direct-sqlcipher.flags.openssl = true;
|
||||||
packages.direct-sqlcipher.components.library.libs = pkgs.lib.mkForce [
|
packages.direct-sqlcipher.components.library.libs = pkgs.lib.mkForce [
|
||||||
(android32Pkgs.openssl.override { static = true; enableKTLS = false; })
|
(android32Pkgs.openssl.override { static = true; enableKTLS = false; })
|
||||||
|
@ -340,56 +169,13 @@
|
||||||
packages.simplexmq.components.library.libs = pkgs.lib.mkForce [
|
packages.simplexmq.components.library.libs = pkgs.lib.mkForce [
|
||||||
(android32Pkgs.openssl.override { static = true; enableKTLS = false; })
|
(android32Pkgs.openssl.override { static = true; enableKTLS = false; })
|
||||||
];
|
];
|
||||||
# 32 bit patches
|
|
||||||
packages.basement.patches = [
|
|
||||||
./scripts/nix/basement-pr-573.patch
|
|
||||||
];
|
|
||||||
packages.memory.patches = [
|
|
||||||
./scripts/nix/memory-pr-99.patch
|
|
||||||
];
|
|
||||||
}];
|
}];
|
||||||
}).simplex-chat.components.library.override (p: {
|
}).simplex-chat.components.library.override {
|
||||||
smallAddressSpace = true;
|
smallAddressSpace = true; enableShared = false;
|
||||||
# we want -shared, but not -dyanmic, hence `enableShared = false`.
|
|
||||||
enableShared = false;
|
|
||||||
# we _do_ want rts, and other libs. Hence `enableStatic = true`.
|
|
||||||
enableStatic = true;
|
|
||||||
# for android we build a shared library, passing these arguments is a bit tricky, as
|
# for android we build a shared library, passing these arguments is a bit tricky, as
|
||||||
# we want only the threaded rts (HSrts_thr) and ffi to be linked, but not fed into iserv for
|
# we want only the threaded rts (HSrts_thr) and ffi to be linked, but not fed into iserv for
|
||||||
# template haskell cross compilation. Thus we just pass them as linker options (-optl).
|
# template haskell cross compilation. Thus we just pass them as linker options (-optl).
|
||||||
setupBuildFlags = p.component.setupBuildFlags
|
setupBuildFlags = map (x: "--ghc-option=${x}") [ "-shared" "-o" "libsimplex.so" "-optl-lHSrts_thr" "-optl-lffi"];
|
||||||
# flags to tell GHC we want to produce a -shared object, and we want to also link
|
|
||||||
# - the ffi library (ffi)
|
|
||||||
++ map (x: "--ghc-option=${x}") [
|
|
||||||
"-shared" "-o" "libsimplex.so"
|
|
||||||
"-threaded"
|
|
||||||
# "-debug"
|
|
||||||
"-optl-lffi"
|
|
||||||
]
|
|
||||||
# This is fairly idiotic. LLD will strip out foreign exported
|
|
||||||
# symbols (a GHC bug? Codegen bug?). So we need to pass `-u <sym>`
|
|
||||||
# to ensure they stay in the produced library. Having them
|
|
||||||
# _undefined_ and _lazy_ (lld will tell with -y <sym> that the
|
|
||||||
# symbol is lazy), makes them _defined_. m(
|
|
||||||
++ map (sym: "--ghc-option=-optl-Wl,-u,${sym}") [
|
|
||||||
"chat_close_store"
|
|
||||||
"chat_decrypt_file"
|
|
||||||
"chat_decrypt_media"
|
|
||||||
"chat_encrypt_file"
|
|
||||||
"chat_encrypt_media"
|
|
||||||
"chat_migrate_init"
|
|
||||||
"chat_parse_markdown"
|
|
||||||
"chat_parse_server"
|
|
||||||
"chat_password_hash"
|
|
||||||
"chat_read_file"
|
|
||||||
"chat_recv_msg"
|
|
||||||
"chat_recv_msg_wait"
|
|
||||||
"chat_send_cmd"
|
|
||||||
"chat_send_remote_cmd"
|
|
||||||
"chat_valid_name"
|
|
||||||
"chat_json_length"
|
|
||||||
"chat_write_file"
|
|
||||||
];
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
set -x
|
set -x
|
||||||
${pkgs.tree}/bin/tree $out
|
${pkgs.tree}/bin/tree $out
|
||||||
|
@ -433,11 +219,10 @@
|
||||||
echo "file binary-dist \"$(echo $out/*.zip)\"" \
|
echo "file binary-dist \"$(echo $out/*.zip)\"" \
|
||||||
> $out/nix-support/hydra-build-products
|
> $out/nix-support/hydra-build-products
|
||||||
'';
|
'';
|
||||||
});
|
};
|
||||||
"aarch64-android:lib:simplex-chat" = (drv' {
|
"aarch64-android:lib:simplex-chat" = (drv' {
|
||||||
pkgs' = androidPkgs;
|
pkgs' = androidPkgs;
|
||||||
extra-modules = [{
|
extra-modules = [{
|
||||||
packages.text.flags.simdutf = false;
|
|
||||||
packages.direct-sqlcipher.flags.openssl = true;
|
packages.direct-sqlcipher.flags.openssl = true;
|
||||||
packages.direct-sqlcipher.components.library.libs = pkgs.lib.mkForce [
|
packages.direct-sqlcipher.components.library.libs = pkgs.lib.mkForce [
|
||||||
(androidPkgs.openssl.override { static = true; })
|
(androidPkgs.openssl.override { static = true; })
|
||||||
|
@ -450,50 +235,12 @@
|
||||||
(androidPkgs.openssl.override { static = true; })
|
(androidPkgs.openssl.override { static = true; })
|
||||||
];
|
];
|
||||||
}];
|
}];
|
||||||
}).simplex-chat.components.library.override (p: {
|
}).simplex-chat.components.library.override {
|
||||||
smallAddressSpace = true;
|
smallAddressSpace = true; enableShared = false;
|
||||||
# we do not want a dynamically linked object, even though we _do_
|
|
||||||
# want to produce a _shared_ object. But `shared` implied -dyanmic
|
|
||||||
# with cabal, so we disable and pass `-shared` explicitly.
|
|
||||||
enableShared = false;
|
|
||||||
# we do want static (e.g. pass all dependencies in, so we get -staticlib)
|
|
||||||
enableStatic = true;
|
|
||||||
# for android we build a shared library, passing these arguments is a bit tricky, as
|
# for android we build a shared library, passing these arguments is a bit tricky, as
|
||||||
# we want only the threaded rts (HSrts_thr) and ffi to be linked, but not fed into iserv for
|
# we want only the threaded rts (HSrts_thr) and ffi to be linked, but not fed into iserv for
|
||||||
# template haskell cross compilation. Thus we just pass them as linker options (-optl).
|
# template haskell cross compilation. Thus we just pass them as linker options (-optl).
|
||||||
setupBuildFlags = p.component.setupBuildFlags
|
setupBuildFlags = map (x: "--ghc-option=${x}") [ "-shared" "-o" "libsimplex.so" "-optl-lHSrts_thr" "-optl-lffi"];
|
||||||
# flags to tell GHC we want to produce a -shared object, and we want to also link
|
|
||||||
# - the ffi library (ffi)
|
|
||||||
++ map (x: "--ghc-option=${x}") [
|
|
||||||
"-shared" "-o" "libsimplex.so"
|
|
||||||
"-threaded"
|
|
||||||
# "-debug"
|
|
||||||
"-optl-lffi"
|
|
||||||
]
|
|
||||||
# This is fairly idiotic. LLD will strip out foreign exported
|
|
||||||
# symbols (a GHC bug? Codegen bug?). So we need to pass `-u <sym>`
|
|
||||||
# to ensure they stay in the produced library. Having them
|
|
||||||
# _undefined_ and _lazy_ (lld will tell with -y <sym> that the
|
|
||||||
# symbol is lazy), makes them _defined_. m(
|
|
||||||
++ map (sym: "--ghc-option=-optl-Wl,-u,${sym}") [
|
|
||||||
"chat_close_store"
|
|
||||||
"chat_decrypt_file"
|
|
||||||
"chat_decrypt_media"
|
|
||||||
"chat_encrypt_file"
|
|
||||||
"chat_encrypt_media"
|
|
||||||
"chat_migrate_init"
|
|
||||||
"chat_parse_markdown"
|
|
||||||
"chat_parse_server"
|
|
||||||
"chat_password_hash"
|
|
||||||
"chat_read_file"
|
|
||||||
"chat_recv_msg"
|
|
||||||
"chat_recv_msg_wait"
|
|
||||||
"chat_send_cmd"
|
|
||||||
"chat_send_remote_cmd"
|
|
||||||
"chat_valid_name"
|
|
||||||
"chat_json_length"
|
|
||||||
"chat_write_file"
|
|
||||||
];
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
set -x
|
set -x
|
||||||
${pkgs.tree}/bin/tree $out
|
${pkgs.tree}/bin/tree $out
|
||||||
|
@ -537,7 +284,7 @@
|
||||||
echo "file binary-dist \"$(echo $out/*.zip)\"" \
|
echo "file binary-dist \"$(echo $out/*.zip)\"" \
|
||||||
> $out/nix-support/hydra-build-products
|
> $out/nix-support/hydra-build-products
|
||||||
'';
|
'';
|
||||||
});
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# builds for iOS and iOS simulator
|
# builds for iOS and iOS simulator
|
||||||
|
@ -552,8 +299,7 @@
|
||||||
packages.entropy.flags.DoNotGetEntropy = true;
|
packages.entropy.flags.DoNotGetEntropy = true;
|
||||||
packages.simplexmq.flags.client_library = true;
|
packages.simplexmq.flags.client_library = true;
|
||||||
packages.simplexmq.components.library.libs = pkgs.lib.mkForce [
|
packages.simplexmq.components.library.libs = pkgs.lib.mkForce [
|
||||||
# TODO: have a cross override for iOS, that sets this.
|
(pkgs.openssl.override { static = true; })
|
||||||
((pkgs.openssl.override { static = true; }).overrideDerivation (old: { CFLAGS = "-mcpu=apple-a7 -march=armv8-a+norcpc" ;}))
|
|
||||||
];
|
];
|
||||||
}];
|
}];
|
||||||
}).simplex-chat.components.library.override (
|
}).simplex-chat.components.library.override (
|
||||||
|
|
|
@ -1,10 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
security create-keychain -p "" simplex.keychain
|
|
||||||
security set-keychain-settings -u simplex.keychain
|
|
||||||
security add-certificates -k simplex.keychain "Developer ID Application: SimpleX Chat Ltd (5NN7GUYB6T).cer"
|
|
||||||
security add-certificates -k simplex.keychain "Developer ID Certification Authority.cer"
|
|
||||||
# Private key with access from any app
|
|
||||||
security import "SimpleX Chat.p12" -P "" -k simplex.keychain -A
|
|
||||||
# Public key
|
|
||||||
security import "SimpleX Chat.pem" -k simplex.keychain
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
trap "rm apps/multiplatform/local.properties 2> /dev/null || true; rm local.properties 2> /dev/null || true; rm /tmp/simplex.keychain" EXIT
|
trap "rm apps/multiplatform/local.properties || true; rm local.properties || true; rm /tmp/simplex.keychain || true" EXIT
|
||||||
echo "desktop.mac.signing.identity=Developer ID Application: SimpleX Chat Ltd (5NN7GUYB6T)" >> apps/multiplatform/local.properties
|
echo "desktop.mac.signing.identity=Developer ID Application: SimpleX Chat Ltd (5NN7GUYB6T)" >> apps/multiplatform/local.properties
|
||||||
echo "desktop.mac.signing.keychain=/tmp/simplex.keychain" >> apps/multiplatform/local.properties
|
echo "desktop.mac.signing.keychain=/tmp/simplex.keychain" >> apps/multiplatform/local.properties
|
||||||
echo "desktop.mac.notarization.apple_id=$APPLE_SIMPLEX_NOTARIZATION_APPLE_ID" >> apps/multiplatform/local.properties
|
echo "desktop.mac.notarization.apple_id=$APPLE_SIMPLEX_NOTARIZATION_APPLE_ID" >> apps/multiplatform/local.properties
|
||||||
|
@ -10,10 +10,6 @@ echo "desktop.mac.notarization.password=$APPLE_SIMPLEX_NOTARIZATION_PASSWORD" >>
|
||||||
echo "desktop.mac.notarization.team_id=5NN7GUYB6T" >> apps/multiplatform/local.properties
|
echo "desktop.mac.notarization.team_id=5NN7GUYB6T" >> apps/multiplatform/local.properties
|
||||||
echo "$APPLE_SIMPLEX_SIGNING_KEYCHAIN" | base64 --decode -o /tmp/simplex.keychain
|
echo "$APPLE_SIMPLEX_SIGNING_KEYCHAIN" | base64 --decode -o /tmp/simplex.keychain
|
||||||
|
|
||||||
security unlock-keychain -p "" /tmp/simplex.keychain
|
|
||||||
# Adding keychain to the list of keychains.
|
|
||||||
# Otherwise, it can find cert but exits while signing with "error: The specified item could not be found in the keychain."
|
|
||||||
security list-keychains -s `security list-keychains | xargs` /tmp/simplex.keychain
|
|
||||||
scripts/desktop/build-lib-mac.sh
|
scripts/desktop/build-lib-mac.sh
|
||||||
cd apps/multiplatform
|
cd apps/multiplatform
|
||||||
./gradlew packageDmg
|
./gradlew packageDmg
|
|
@ -8,7 +8,7 @@ function readlink() {
|
||||||
|
|
||||||
OS=linux
|
OS=linux
|
||||||
ARCH=${1:-`uname -a | rev | cut -d' ' -f2 | rev`}
|
ARCH=${1:-`uname -a | rev | cut -d' ' -f2 | rev`}
|
||||||
GHC_VERSION=9.6.3
|
GHC_VERSION=8.10.7
|
||||||
|
|
||||||
if [ "$ARCH" == "aarch64" ]; then
|
if [ "$ARCH" == "aarch64" ]; then
|
||||||
COMPOSE_ARCH=arm64
|
COMPOSE_ARCH=arm64
|
||||||
|
@ -25,7 +25,7 @@ for elem in "${exports[@]}"; do count=$(grep -R "$elem$" libsimplex.dll.def | wc
|
||||||
for elem in "${exports[@]}"; do count=$(grep -R "\"$elem\"" flake.nix | wc -l); if [ $count -ne 2 ]; then echo Wrong exports in flake.nix. Add \"$elem\" in two places of the file; exit 1; fi ; done
|
for elem in "${exports[@]}"; do count=$(grep -R "\"$elem\"" flake.nix | wc -l); if [ $count -ne 2 ]; then echo Wrong exports in flake.nix. Add \"$elem\" in two places of the file; exit 1; fi ; done
|
||||||
|
|
||||||
rm -rf $BUILD_DIR
|
rm -rf $BUILD_DIR
|
||||||
cabal build lib:simplex-chat --ghc-options='-optl-Wl,-rpath,$ORIGIN -flink-rts -threaded' --constraint 'simplexmq +client_library'
|
cabal build lib:simplex-chat --ghc-options='-optl-Wl,-rpath,$ORIGIN' --ghc-options="-optl-L$(ghc --print-libdir)/rts -optl-Wl,--as-needed,-lHSrts_thr-ghc$GHC_VERSION" --constraint 'simplexmq +client_library'
|
||||||
cd $BUILD_DIR/build
|
cd $BUILD_DIR/build
|
||||||
#patchelf --add-needed libHSrts_thr-ghc${GHC_VERSION}.so libHSsimplex-chat-*-inplace-ghc${GHC_VERSION}.so
|
#patchelf --add-needed libHSrts_thr-ghc${GHC_VERSION}.so libHSsimplex-chat-*-inplace-ghc${GHC_VERSION}.so
|
||||||
#patchelf --add-rpath '$ORIGIN' libHSsimplex-chat-*-inplace-ghc${GHC_VERSION}.so
|
#patchelf --add-rpath '$ORIGIN' libHSsimplex-chat-*-inplace-ghc${GHC_VERSION}.so
|
||||||
|
|
|
@ -5,14 +5,13 @@ set -e
|
||||||
OS=mac
|
OS=mac
|
||||||
ARCH="${1:-`uname -a | rev | cut -d' ' -f1 | rev`}"
|
ARCH="${1:-`uname -a | rev | cut -d' ' -f1 | rev`}"
|
||||||
COMPOSE_ARCH=$ARCH
|
COMPOSE_ARCH=$ARCH
|
||||||
GHC_VERSION=9.6.3
|
GHC_VERSION=8.10.7
|
||||||
|
|
||||||
if [ "$ARCH" == "arm64" ]; then
|
if [ "$ARCH" == "arm64" ]; then
|
||||||
ARCH=aarch64
|
ARCH=aarch64
|
||||||
else
|
else
|
||||||
COMPOSE_ARCH=x64
|
COMPOSE_ARCH=x64
|
||||||
fi
|
fi
|
||||||
|
|
||||||
LIB_EXT=dylib
|
LIB_EXT=dylib
|
||||||
LIB=libHSsimplex-chat-*-inplace-ghc*.$LIB_EXT
|
LIB=libHSsimplex-chat-*-inplace-ghc*.$LIB_EXT
|
||||||
GHC_LIBS_DIR=$(ghc --print-libdir)
|
GHC_LIBS_DIR=$(ghc --print-libdir)
|
||||||
|
@ -24,26 +23,13 @@ for elem in "${exports[@]}"; do count=$(grep -R "$elem$" libsimplex.dll.def | wc
|
||||||
for elem in "${exports[@]}"; do count=$(grep -R "\"$elem\"" flake.nix | wc -l); if [ $count -ne 2 ]; then echo Wrong exports in flake.nix. Add \"$elem\" in two places of the file; exit 1; fi ; done
|
for elem in "${exports[@]}"; do count=$(grep -R "\"$elem\"" flake.nix | wc -l); if [ $count -ne 2 ]; then echo Wrong exports in flake.nix. Add \"$elem\" in two places of the file; exit 1; fi ; done
|
||||||
|
|
||||||
rm -rf $BUILD_DIR
|
rm -rf $BUILD_DIR
|
||||||
cabal build lib:simplex-chat lib:simplex-chat --ghc-options="-optl-Wl,-rpath,@loader_path -optl-Wl,-L$GHC_LIBS_DIR/$ARCH-osx-ghc-$GHC_VERSION -optl-lHSrts_thr-ghc$GHC_VERSION -optl-lffi" --constraint 'simplexmq +client_library'
|
cabal build lib:simplex-chat lib:simplex-chat --ghc-options="-optl-Wl,-rpath,@loader_path -optl-Wl,-L$GHC_LIBS_DIR/rts -optl-lHSrts_thr-ghc8.10.7 -optl-lffi" --constraint 'simplexmq +client_library'
|
||||||
|
|
||||||
cd $BUILD_DIR/build
|
cd $BUILD_DIR/build
|
||||||
mkdir deps 2> /dev/null || true
|
mkdir deps 2> /dev/null || true
|
||||||
|
|
||||||
# It's not included by default for some reason. Compiled lib tries to find system one but it's not always available
|
# It's not included by default for some reason. Compiled lib tries to find system one but it's not always available
|
||||||
#cp $GHC_LIBS_DIR/libffi.dylib ./deps
|
cp $GHC_LIBS_DIR/rts/libffi.dylib ./deps
|
||||||
(
|
|
||||||
BUILD=$PWD
|
|
||||||
cp /tmp/libffi-3.4.4/*-apple-darwin*/.libs/libffi.dylib $BUILD/deps || \
|
|
||||||
( \
|
|
||||||
cd /tmp && \
|
|
||||||
curl --tlsv1.2 "https://gitlab.haskell.org/ghc/libffi-tarballs/-/raw/libffi-3.4.4/libffi-3.4.4.tar.gz?inline=false" -o libffi.tar.gz && \
|
|
||||||
tar -xzvf libffi.tar.gz && \
|
|
||||||
cd "libffi-3.4.4" && \
|
|
||||||
./configure && \
|
|
||||||
make && \
|
|
||||||
cp *-apple-darwin*/.libs/libffi.dylib $BUILD/deps \
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
DYLIBS=`otool -L $LIB | grep @rpath | tail -n +2 | cut -d' ' -f 1 | cut -d'/' -f2`
|
DYLIBS=`otool -L $LIB | grep @rpath | tail -n +2 | cut -d' ' -f 1 | cut -d'/' -f2`
|
||||||
RPATHS=`otool -l $LIB | grep "path "| cut -d' ' -f11`
|
RPATHS=`otool -l $LIB | grep "path "| cut -d' ' -f11`
|
||||||
|
@ -84,8 +70,6 @@ function copy_deps() {
|
||||||
}
|
}
|
||||||
|
|
||||||
copy_deps $LIB
|
copy_deps $LIB
|
||||||
# Special case
|
|
||||||
cp $(ghc --print-libdir)/$ARCH-osx-ghc-$GHC_VERSION/libHSghc-boot-th-$GHC_VERSION-ghc$GHC_VERSION.dylib deps
|
|
||||||
rm deps/`basename $LIB`
|
rm deps/`basename $LIB`
|
||||||
|
|
||||||
cd -
|
cd -
|
||||||
|
|
|
@ -1,242 +0,0 @@
|
||||||
From 38be2c93acb6f459d24ed6c626981c35ccf44095 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Sylvain Henry <sylvain@haskus.fr>
|
|
||||||
Date: Thu, 16 Feb 2023 15:40:45 +0100
|
|
||||||
Subject: [PATCH] Fix build on 32-bit architectures
|
|
||||||
|
|
||||||
---
|
|
||||||
Basement/Bits.hs | 4 ++++
|
|
||||||
Basement/From.hs | 24 -----------------------
|
|
||||||
Basement/Numerical/Additive.hs | 4 ++++
|
|
||||||
Basement/Numerical/Conversion.hs | 20 +++++++++++++++++++
|
|
||||||
Basement/PrimType.hs | 6 +++++-
|
|
||||||
Basement/Types/OffsetSize.hs | 22 +++++++++++++++++++--
|
|
||||||
6 files changed, 53 insertions(+), 27 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/Basement/Bits.hs b/Basement/Bits.hs
|
|
||||||
index 7eeea0f5..24520ed7 100644
|
|
||||||
--- a/Basement/Bits.hs
|
|
||||||
+++ b/Basement/Bits.hs
|
|
||||||
@@ -54,8 +54,12 @@ import GHC.Int
|
|
||||||
import Basement.Compat.Primitive
|
|
||||||
|
|
||||||
#if WORD_SIZE_IN_BITS < 64
|
|
||||||
+#if __GLASGOW_HASKELL__ >= 904
|
|
||||||
+import GHC.Exts
|
|
||||||
+#else
|
|
||||||
import GHC.IntWord64
|
|
||||||
#endif
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
-- | operation over finite bits
|
|
||||||
class FiniteBitsOps bits where
|
|
||||||
diff --git a/Basement/From.hs b/Basement/From.hs
|
|
||||||
index 7bbe141c..80014b3e 100644
|
|
||||||
--- a/Basement/From.hs
|
|
||||||
+++ b/Basement/From.hs
|
|
||||||
@@ -272,23 +272,11 @@ instance (NatWithinBound (CountOf ty) n, KnownNat n, PrimType ty)
|
|
||||||
tryFrom = BlockN.toBlockN . UArray.toBlock . BoxArray.mapToUnboxed id
|
|
||||||
|
|
||||||
instance (KnownNat n, NatWithinBound Word8 n) => From (Zn64 n) Word8 where
|
|
||||||
-#if __GLASGOW_HASKELL__ >= 904
|
|
||||||
- from = narrow . unZn64 where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
|
||||||
-#else
|
|
||||||
from = narrow . unZn64 where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# w))
|
|
||||||
-#endif
|
|
||||||
instance (KnownNat n, NatWithinBound Word16 n) => From (Zn64 n) Word16 where
|
|
||||||
-#if __GLASGOW_HASKELL__ >= 904
|
|
||||||
- from = narrow . unZn64 where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
|
||||||
-#else
|
|
||||||
from = narrow . unZn64 where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# w))
|
|
||||||
-#endif
|
|
||||||
instance (KnownNat n, NatWithinBound Word32 n) => From (Zn64 n) Word32 where
|
|
||||||
-#if __GLASGOW_HASKELL__ >= 904
|
|
||||||
- from = narrow . unZn64 where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
|
||||||
-#else
|
|
||||||
from = narrow . unZn64 where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# w))
|
|
||||||
-#endif
|
|
||||||
instance From (Zn64 n) Word64 where
|
|
||||||
from = unZn64
|
|
||||||
instance From (Zn64 n) Word128 where
|
|
||||||
@@ -297,23 +285,11 @@ instance From (Zn64 n) Word256 where
|
|
||||||
from = from . unZn64
|
|
||||||
|
|
||||||
instance (KnownNat n, NatWithinBound Word8 n) => From (Zn n) Word8 where
|
|
||||||
-#if __GLASGOW_HASKELL__ >= 904
|
|
||||||
- from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
|
||||||
-#else
|
|
||||||
from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# w))
|
|
||||||
-#endif
|
|
||||||
instance (KnownNat n, NatWithinBound Word16 n) => From (Zn n) Word16 where
|
|
||||||
-#if __GLASGOW_HASKELL__ >= 904
|
|
||||||
- from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
|
||||||
-#else
|
|
||||||
from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# w))
|
|
||||||
-#endif
|
|
||||||
instance (KnownNat n, NatWithinBound Word32 n) => From (Zn n) Word32 where
|
|
||||||
-#if __GLASGOW_HASKELL__ >= 904
|
|
||||||
- from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
|
||||||
-#else
|
|
||||||
from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# w))
|
|
||||||
-#endif
|
|
||||||
instance (KnownNat n, NatWithinBound Word64 n) => From (Zn n) Word64 where
|
|
||||||
from = naturalToWord64 . unZn
|
|
||||||
instance (KnownNat n, NatWithinBound Word128 n) => From (Zn n) Word128 where
|
|
||||||
diff --git a/Basement/Numerical/Additive.hs b/Basement/Numerical/Additive.hs
|
|
||||||
index d0dfb973..8ab65aa0 100644
|
|
||||||
--- a/Basement/Numerical/Additive.hs
|
|
||||||
+++ b/Basement/Numerical/Additive.hs
|
|
||||||
@@ -30,8 +30,12 @@ import qualified Basement.Types.Word128 as Word128
|
|
||||||
import qualified Basement.Types.Word256 as Word256
|
|
||||||
|
|
||||||
#if WORD_SIZE_IN_BITS < 64
|
|
||||||
+#if __GLASGOW_HASKELL__ >= 904
|
|
||||||
+import GHC.Exts
|
|
||||||
+#else
|
|
||||||
import GHC.IntWord64
|
|
||||||
#endif
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
-- | Represent class of things that can be added together,
|
|
||||||
-- contains a neutral element and is commutative.
|
|
||||||
diff --git a/Basement/Numerical/Conversion.hs b/Basement/Numerical/Conversion.hs
|
|
||||||
index db502c07..fddc8232 100644
|
|
||||||
--- a/Basement/Numerical/Conversion.hs
|
|
||||||
+++ b/Basement/Numerical/Conversion.hs
|
|
||||||
@@ -26,8 +26,12 @@ import GHC.Word
|
|
||||||
import Basement.Compat.Primitive
|
|
||||||
|
|
||||||
#if WORD_SIZE_IN_BITS < 64
|
|
||||||
+#if __GLASGOW_HASKELL__ >= 904
|
|
||||||
+import GHC.Exts
|
|
||||||
+#else
|
|
||||||
import GHC.IntWord64
|
|
||||||
#endif
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
intToInt64 :: Int -> Int64
|
|
||||||
#if WORD_SIZE_IN_BITS == 64
|
|
||||||
@@ -96,11 +100,22 @@ int64ToWord64 (I64# i) = W64# (int64ToWord64# i)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if WORD_SIZE_IN_BITS == 64
|
|
||||||
+#if __GLASGOW_HASKELL__ >= 904
|
|
||||||
+word64ToWord# :: Word64# -> Word#
|
|
||||||
+word64ToWord# i = word64ToWord# i
|
|
||||||
+#else
|
|
||||||
word64ToWord# :: Word# -> Word#
|
|
||||||
word64ToWord# i = i
|
|
||||||
+#endif
|
|
||||||
{-# INLINE word64ToWord# #-}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#if WORD_SIZE_IN_BITS < 64
|
|
||||||
+word64ToWord32# :: Word64# -> Word32#
|
|
||||||
+word64ToWord32# i = wordToWord32# (word64ToWord# i)
|
|
||||||
+{-# INLINE word64ToWord32# #-}
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
-- | 2 Word32s
|
|
||||||
data Word32x2 = Word32x2 {-# UNPACK #-} !Word32
|
|
||||||
{-# UNPACK #-} !Word32
|
|
||||||
@@ -113,9 +128,14 @@ word64ToWord32s (W64# w64) = Word32x2 (W32# (wordToWord32# (uncheckedShiftRL# (G
|
|
||||||
word64ToWord32s (W64# w64) = Word32x2 (W32# (wordToWord32# (uncheckedShiftRL# w64 32#))) (W32# (wordToWord32# w64))
|
|
||||||
#endif
|
|
||||||
#else
|
|
||||||
+#if __GLASGOW_HASKELL__ >= 904
|
|
||||||
+word64ToWord32s :: Word64 -> Word32x2
|
|
||||||
+word64ToWord32s (W64# w64) = Word32x2 (W32# (word64ToWord32# (uncheckedShiftRL64# w64 32#))) (W32# (word64ToWord32# w64))
|
|
||||||
+#else
|
|
||||||
word64ToWord32s :: Word64 -> Word32x2
|
|
||||||
word64ToWord32s (W64# w64) = Word32x2 (W32# (word64ToWord# (uncheckedShiftRL64# w64 32#))) (W32# (word64ToWord# w64))
|
|
||||||
#endif
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
wordToChar :: Word -> Char
|
|
||||||
wordToChar (W# word) = C# (chr# (word2Int# word))
|
|
||||||
diff --git a/Basement/PrimType.hs b/Basement/PrimType.hs
|
|
||||||
index f8ca2926..a888ec91 100644
|
|
||||||
--- a/Basement/PrimType.hs
|
|
||||||
+++ b/Basement/PrimType.hs
|
|
||||||
@@ -54,7 +54,11 @@ import Basement.Nat
|
|
||||||
import qualified Prelude (quot)
|
|
||||||
|
|
||||||
#if WORD_SIZE_IN_BITS < 64
|
|
||||||
-import GHC.IntWord64
|
|
||||||
+#if __GLASGOW_HASKELL__ >= 904
|
|
||||||
+import GHC.Exts
|
|
||||||
+#else
|
|
||||||
+import GHC.IntWord64
|
|
||||||
+#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef FOUNDATION_BOUNDS_CHECK
|
|
||||||
diff --git a/Basement/Types/OffsetSize.hs b/Basement/Types/OffsetSize.hs
|
|
||||||
index cd944927..1ea80dad 100644
|
|
||||||
--- a/Basement/Types/OffsetSize.hs
|
|
||||||
+++ b/Basement/Types/OffsetSize.hs
|
|
||||||
@@ -70,8 +70,12 @@ import Data.List (foldl')
|
|
||||||
import qualified Prelude
|
|
||||||
|
|
||||||
#if WORD_SIZE_IN_BITS < 64
|
|
||||||
+#if __GLASGOW_HASKELL__ >= 904
|
|
||||||
+import GHC.Exts
|
|
||||||
+#else
|
|
||||||
import GHC.IntWord64
|
|
||||||
#endif
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
-- | File size in bytes
|
|
||||||
newtype FileSize = FileSize Word64
|
|
||||||
@@ -225,20 +229,26 @@ countOfRoundUp alignment (CountOf n) = CountOf ((n + (alignment-1)) .&. compleme
|
|
||||||
|
|
||||||
csizeOfSize :: CountOf Word8 -> CSize
|
|
||||||
#if WORD_SIZE_IN_BITS < 64
|
|
||||||
+#if __GLASGOW_HASKELL__ >= 904
|
|
||||||
+csizeOfSize (CountOf (I# sz)) = CSize (W32# (wordToWord32# (int2Word# sz)))
|
|
||||||
+#else
|
|
||||||
csizeOfSize (CountOf (I# sz)) = CSize (W32# (int2Word# sz))
|
|
||||||
+#endif
|
|
||||||
#else
|
|
||||||
#if __GLASGOW_HASKELL__ >= 904
|
|
||||||
csizeOfSize (CountOf (I# sz)) = CSize (W64# (wordToWord64# (int2Word# sz)))
|
|
||||||
-
|
|
||||||
#else
|
|
||||||
csizeOfSize (CountOf (I# sz)) = CSize (W64# (int2Word# sz))
|
|
||||||
-
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
csizeOfOffset :: Offset8 -> CSize
|
|
||||||
#if WORD_SIZE_IN_BITS < 64
|
|
||||||
+#if __GLASGOW_HASKELL__ >= 904
|
|
||||||
+csizeOfOffset (Offset (I# sz)) = CSize (W32# (wordToWord32# (int2Word# sz)))
|
|
||||||
+#else
|
|
||||||
csizeOfOffset (Offset (I# sz)) = CSize (W32# (int2Word# sz))
|
|
||||||
+#endif
|
|
||||||
#else
|
|
||||||
#if __GLASGOW_HASKELL__ >= 904
|
|
||||||
csizeOfOffset (Offset (I# sz)) = CSize (W64# (wordToWord64# (int2Word# sz)))
|
|
||||||
@@ -250,7 +260,11 @@ csizeOfOffset (Offset (I# sz)) = CSize (W64# (int2Word# sz))
|
|
||||||
sizeOfCSSize :: CSsize -> CountOf Word8
|
|
||||||
sizeOfCSSize (CSsize (-1)) = error "invalid size: CSSize is -1"
|
|
||||||
#if WORD_SIZE_IN_BITS < 64
|
|
||||||
+#if __GLASGOW_HASKELL__ >= 904
|
|
||||||
+sizeOfCSSize (CSsize (I32# sz)) = CountOf (I# (int32ToInt# sz))
|
|
||||||
+#else
|
|
||||||
sizeOfCSSize (CSsize (I32# sz)) = CountOf (I# sz)
|
|
||||||
+#endif
|
|
||||||
#else
|
|
||||||
#if __GLASGOW_HASKELL__ >= 904
|
|
||||||
sizeOfCSSize (CSsize (I64# sz)) = CountOf (I# (int64ToInt# sz))
|
|
||||||
@@ -261,7 +275,11 @@ sizeOfCSSize (CSsize (I64# sz)) = CountOf (I# sz)
|
|
||||||
|
|
||||||
sizeOfCSize :: CSize -> CountOf Word8
|
|
||||||
#if WORD_SIZE_IN_BITS < 64
|
|
||||||
+#if __GLASGOW_HASKELL__ >= 904
|
|
||||||
+sizeOfCSize (CSize (W32# sz)) = CountOf (I# (word2Int# (word32ToWord# sz)))
|
|
||||||
+#else
|
|
||||||
sizeOfCSize (CSize (W32# sz)) = CountOf (I# (word2Int# sz))
|
|
||||||
+#endif
|
|
||||||
#else
|
|
||||||
#if __GLASGOW_HASKELL__ >= 904
|
|
||||||
sizeOfCSize (CSize (W64# sz)) = CountOf (I# (word2Int# (word64ToWord# sz)))
|
|
|
@ -1,12 +0,0 @@
|
||||||
diff --git a/direct-sqlcipher.cabal b/direct-sqlcipher.cabal
|
|
||||||
index 728ba3e..c63745e 100644
|
|
||||||
--- a/direct-sqlcipher.cabal
|
|
||||||
+++ b/direct-sqlcipher.cabal
|
|
||||||
@@ -84,6 +84,8 @@ library
|
|
||||||
cc-options: -DSQLITE_TEMP_STORE=2
|
|
||||||
-DSQLITE_HAS_CODEC
|
|
||||||
|
|
||||||
+ extra-libraries: ws2_32
|
|
||||||
+
|
|
||||||
if !os(windows) && !os(android)
|
|
||||||
extra-libraries: pthread
|
|
|
@ -1,36 +0,0 @@
|
||||||
From 2738929ce15b4c8704bbbac24a08539b5d4bf30e Mon Sep 17 00:00:00 2001
|
|
||||||
From: sternenseemann <sternenseemann@systemli.org>
|
|
||||||
Date: Mon, 14 Aug 2023 10:51:30 +0200
|
|
||||||
Subject: [PATCH] Data.Memory.Internal.CompatPrim64: fix 32 bit with GHC >= 9.4
|
|
||||||
|
|
||||||
Since 9.4, GHC.Prim exports Word64# operations like timesWord64# even on
|
|
||||||
i686 whereas GHC.IntWord64 no longer exists. Therefore, we can just use
|
|
||||||
the ready made solution.
|
|
||||||
|
|
||||||
Closes #98, as it should be the better solution.
|
|
||||||
---
|
|
||||||
Data/Memory/Internal/CompatPrim64.hs | 4 ++++
|
|
||||||
1 file changed, 4 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/Data/Memory/Internal/CompatPrim64.hs b/Data/Memory/Internal/CompatPrim64.hs
|
|
||||||
index b9eef8a..a134c88 100644
|
|
||||||
--- a/Data/Memory/Internal/CompatPrim64.hs
|
|
||||||
+++ b/Data/Memory/Internal/CompatPrim64.hs
|
|
||||||
@@ -150,6 +150,7 @@ w64# :: Word# -> Word# -> Word# -> Word64#
|
|
||||||
w64# w _ _ = w
|
|
||||||
|
|
||||||
#elif WORD_SIZE_IN_BITS == 32
|
|
||||||
+#if __GLASGOW_HASKELL__ < 904
|
|
||||||
import GHC.IntWord64
|
|
||||||
import GHC.Prim (Word#)
|
|
||||||
|
|
||||||
@@ -158,6 +159,9 @@ timesWord64# a b =
|
|
||||||
let !ai = word64ToInt64# a
|
|
||||||
!bi = word64ToInt64# b
|
|
||||||
in int64ToWord64# (timesInt64# ai bi)
|
|
||||||
+#else
|
|
||||||
+import GHC.Prim
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
w64# :: Word# -> Word# -> Word# -> Word64#
|
|
||||||
w64# _ hw lw =
|
|
Loading…
Add table
Add a link
Reference in a new issue