* Re: [PR PATCH] [Updated] choosenim: update to 0.7.4. fix native build
2020-11-20 2:19 [PR PATCH] choosenim: update to 0.7.4. fix native build sgn
@ 2020-11-20 16:49 ` sgn
2020-11-21 0:26 ` [PR PATCH] [Merged]: " sgn
1 sibling, 0 replies; 3+ messages in thread
From: sgn @ 2020-11-20 16:49 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 398 bytes --]
There is an updated pull request by sgn against master on the void-packages repository
https://github.com/sgn/void-packages choosenim-fix-native
https://github.com/void-linux/void-packages/pull/26520
choosenim: update to 0.7.4. fix native build
Still nocross, I haven't figured out why. Help appreciated.
A patch file from https://github.com/void-linux/void-packages/pull/26520.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-choosenim-fix-native-26520.patch --]
[-- Type: text/x-diff, Size: 10482 bytes --]
From 34c00d8e77b620619c7bd3d799bbb6c89b6d21cd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
<congdanhqx@gmail.com>
Date: Thu, 19 Nov 2020 23:16:50 +0700
Subject: [PATCH] choosenim: update to 0.7.4.
---
...3cd106185441604a55ef34968a2a37d6258a.patch | 25 -----
...ba5b72f8434eb690ae3b84f43968b8041a95.patch | 22 ----
srcpkgs/choosenim/patches/ftbfs.patch | 56 ----------
.../choosenim/patches/system-libarchive.patch | 103 ++++++++++++++++++
srcpkgs/choosenim/template | 42 ++++---
5 files changed, 132 insertions(+), 116 deletions(-)
delete mode 100644 srcpkgs/choosenim/patches/cfc83cd106185441604a55ef34968a2a37d6258a.patch
delete mode 100644 srcpkgs/choosenim/patches/f7aeba5b72f8434eb690ae3b84f43968b8041a95.patch
delete mode 100644 srcpkgs/choosenim/patches/ftbfs.patch
create mode 100644 srcpkgs/choosenim/patches/system-libarchive.patch
diff --git a/srcpkgs/choosenim/patches/cfc83cd106185441604a55ef34968a2a37d6258a.patch b/srcpkgs/choosenim/patches/cfc83cd106185441604a55ef34968a2a37d6258a.patch
deleted file mode 100644
index a7445e39527..00000000000
--- a/srcpkgs/choosenim/patches/cfc83cd106185441604a55ef34968a2a37d6258a.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From cfc83cd106185441604a55ef34968a2a37d6258a Mon Sep 17 00:00:00 2001
-From: Dominik Picheta <dominikpicheta@googlemail.com>
-Date: Mon, 14 Oct 2019 21:09:23 +0100
-Subject: [PATCH] Fixes #142.
-
-Fixes regression in choosenim install script.
----
- scripts/choosenim-unix-init.sh | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/scripts/choosenim-unix-init.sh b/scripts/choosenim-unix-init.sh
-index a60b74b..89912cf 100755
---- scripts/choosenim-unix-init.sh
-+++ scripts/choosenim-unix-init.sh
-@@ -59,9 +59,8 @@ install() {
- fi
-
- # Install Nim from desired channel.
-- "$temp_prefix/$filename" $CHOOSE_VERSION --firstInstall -y < /dev/tty
-+ "$temp_prefix/$filename" $CHOOSE_VERSION --firstInstall < /dev/tty
- else
-- # TODO: Use the -y switch when choosenim gets support for it.
- "$temp_prefix/$filename" $CHOOSE_VERSION --firstInstall -y
- fi
-
diff --git a/srcpkgs/choosenim/patches/f7aeba5b72f8434eb690ae3b84f43968b8041a95.patch b/srcpkgs/choosenim/patches/f7aeba5b72f8434eb690ae3b84f43968b8041a95.patch
deleted file mode 100644
index a9e8c153eb2..00000000000
--- a/srcpkgs/choosenim/patches/f7aeba5b72f8434eb690ae3b84f43968b8041a95.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From f7aeba5b72f8434eb690ae3b84f43968b8041a95 Mon Sep 17 00:00:00 2001
-From: Dominik Picheta <dominikpicheta@gmail.com>
-Date: Sun, 21 Apr 2019 20:29:41 +0100
-Subject: [PATCH] Fixes osinfo dependency conflict.
-
----
- choosenim.nimble | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/choosenim.nimble b/choosenim.nimble
-index d826357..b775d88 100644
---- choosenim.nimble
-+++ choosenim.nimble
-@@ -15,7 +15,7 @@ skipExt = @["nim"]
-
- requires "nim >= 0.16.1", "nimble >= 0.8.5", "untar >= 0.1.0"
- requires "libcurl >= 1.0.0"
--requires "analytics >= 0.1.1"
-+requires "analytics >= 0.2.0"
- requires "osinfo >= 0.3.0"
-
- task test, "Run the choosenim tester!":
diff --git a/srcpkgs/choosenim/patches/ftbfs.patch b/srcpkgs/choosenim/patches/ftbfs.patch
deleted file mode 100644
index f5bbc6ace2b..00000000000
--- a/srcpkgs/choosenim/patches/ftbfs.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-commit 53472069126088cd1d23d84aa4fdee9dc780f7d2
-Author: q66 <daniel@octaforge.org>
-Date: Tue Dec 17 22:21:04 2019 +0100
-
- fix build: undeclared identifier: 'NimbleError'
-
-diff --git choosenim.nimble choosenim.nimble
-index d826357..b91fac8 100644
---- choosenim.nimble
-+++ choosenim.nimble
-@@ -13,7 +13,7 @@ skipExt = @["nim"]
-
- # Dependencies
-
--requires "nim >= 0.16.1", "nimble >= 0.8.5", "untar >= 0.1.0"
-+requires "nim >= 0.16.1", "nimble#5bb795a", "untar >= 0.1.0"
- requires "libcurl >= 1.0.0"
- requires "analytics >= 0.1.1"
- requires "osinfo >= 0.3.0"
-diff --git src/choosenim/common.nim src/choosenim/common.nim
-index 197bfac..059d210 100644
---- src/choosenim/common.nim
-+++ src/choosenim/common.nim
-@@ -1,4 +1,4 @@
--import nimblepkg/common
-+import nimblepkg/version
-
- type
- ChooseNimError* = object of NimbleError
-@@ -19,4 +19,4 @@ const
- "g++",
- "gdb",
- "ld"
-- ]
-\ No newline at end of file
-+ ]
-diff --git src/choosenim/proxyexe.nim src/choosenim/proxyexe.nim
-index 9c9c761..829df8f 100644
---- src/choosenim/proxyexe.nim
-+++ src/choosenim/proxyexe.nim
-@@ -4,7 +4,7 @@
-
- import strutils, os, osproc
-
--import nimblepkg/[cli, options]
-+import nimblepkg/[cli, options, version]
- import nimblepkg/common as nimbleCommon
- import cliparams
- from common import ChooseNimError, mingwProxies
-@@ -71,4 +71,4 @@ when isMainModule:
-
- display("Info:", "If unexpected, please report this error to " &
- "https://github.com/dom96/choosenim", Warning, HighPriority)
-- quit(1)
-\ No newline at end of file
-+ quit(1)
diff --git a/srcpkgs/choosenim/patches/system-libarchive.patch b/srcpkgs/choosenim/patches/system-libarchive.patch
new file mode 100644
index 00000000000..a102f0c13b3
--- /dev/null
+++ b/srcpkgs/choosenim/patches/system-libarchive.patch
@@ -0,0 +1,103 @@
+diff --git choosenim.nimble choosenim.nimble
+index 7ba9b36..dc47faa 100644
+--- choosenim.nimble
++++ choosenim.nimble
+@@ -14,7 +14,7 @@ skipExt = @["nim"]
+ # Dependencies
+
+ requires "nim >= 1.2.6", "nimble#8f7af86"
+-requires "nimterop >= 0.6.12", "nimarchive >= 0.5.3"
++requires "nimterop >= 0.6.12"
+ #requires "libcurl >= 1.0.0" - OSX now uses httpclient
+ requires "analytics >= 0.2.0"
+ requires "osinfo >= 0.3.0"
+diff --git nimarchive/nimarchive/archive.nim nimarchive/nimarchive/archive.nim
+index 1d45140..d5361e0 100644
+--- nimarchive/nimarchive/archive.nim
++++ nimarchive/nimarchive/archive.nim
+@@ -2,28 +2,6 @@ import os, strutils
+
+ import nimterop/[build, cimport]
+
+-const
+- baseDir = getProjectCacheDir("nimarchive" / "libarchive")
+-
+- defs = """
+- archiveStatic
+- archiveJBB
+- archiveSetVer=3.4.3
+-
+- iconvStatic
+- iconvStd
+- iconvJBB
+- iconvSetVer=1.16.0
+- """
+-
+-setDefines(defs.splitLines())
+-
+-getHeader(
+- header = "archive.h",
+- outdir = baseDir,
+- jbburi = "LibArchive",
+- jbbFlags = "url=https://bintray.com/genotrance/binaries/download_file?file_path=LibArchive-v$1/ skip=libiconv"
+-)
+
+ import iconv
+
+@@ -52,9 +30,7 @@ static:
+ cSkipSymbol(@["archive_read_open_file", "archive_write_open_file"])
+
+ let
+- archiveEntryPath {.compileTime.} = archivePath[0 .. ^3] & "_entry.h"
++ archivePath {.compileTime.} = "archive.h"
++ archiveEntryPath {.compileTime.} = "archive_entry.h"
+
+-when archiveStatic:
+- cImport(@[archivePath, archiveEntryPath], recurse = true)
+-else:
+- cImport(@[archivePath, archiveEntryPath], recurse = true, dynlib = archiveLPath)
++cImport(@[archivePath, archiveEntryPath], recurse = false)
+diff --git nimarchive/nimarchive/iconv.nim nimarchive/nimarchive/iconv.nim
+index d983398..4f61a5b 100644
+--- nimarchive/nimarchive/iconv.nim
++++ nimarchive/nimarchive/iconv.nim
+@@ -2,15 +2,3 @@ import os, strutils
+
+ import nimterop/build
+
+-const
+- baseDir = getProjectCacheDir("nimarchive" / "iconv")
+-
+-getHeader(
+- header = "iconv.h",
+- dlurl = "https://ftp.gnu.org/gnu/libiconv/libiconv-$1.tar.gz",
+- conanuri = "libiconv",
+- jbburi = "Libiconv",
+- jbbFlags = "url=https://bintray.com/genotrance/binaries/download_file?file_path=Libiconv-v$1/",
+- outdir = baseDir,
+- conFlags = "--enable-static=yes --with-pic=yes"
+-)
+diff --git src/choosenimpkg/ssl.nim src/choosenimpkg/ssl.nim
+index f20b246..7576066 100644
+--- src/choosenimpkg/ssl.nim
++++ src/choosenimpkg/ssl.nim
+@@ -2,19 +2,3 @@ import strutils
+
+ import nimterop/[build, cimport]
+
+-# Download openssl from JuliaBinaryWrappers
+-setDefines(@[
+- "cryptoJBB", "cryptoStatic"
+-])
+-
+-getHeader(
+- "crypto.h",
+- jbburi = "openssl",
+- outdir = getProjectCacheDir("nimopenssl")
+-)
+-
+-const
+- sslLPath = cryptoLPath.replace("crypto", "ssl")
+-
+-# Link static binaries
+-{.passL: sslLPath & " " & cryptoLPath.}
diff --git a/srcpkgs/choosenim/template b/srcpkgs/choosenim/template
index d31e065edf0..fb5e9152b22 100644
--- a/srcpkgs/choosenim/template
+++ b/srcpkgs/choosenim/template
@@ -1,20 +1,22 @@
# Template file for 'choosenim'
pkgname=choosenim
-version=0.4.0
+version=0.7.4
revision=1
-hostmakedepends="git nim"
-makedepends="libressl-devel zlib-devel"
+hostmakedepends="git nim libressl-devel pkg-config"
+makedepends="libressl-devel zlib-devel libarchive-devel"
depends="gcc"
short_desc="Nim toolchain installer"
maintainer="SolitudeSF <solitudesf@protonmail.com>"
license="MIT"
homepage="https://github.com/dom96/choosenim"
-distfiles="${homepage}/archive/v${version}.tar.gz"
-checksum=d7b04314666a3647c255f89031deabe53f8e281b6cfbf3a0848272fc1799c0f3
+distfiles="${homepage}/archive/v${version}.tar.gz>choosenim-${version}.tar.gz
+ https://github.com/genotrance/nimarchive/archive/v0.5.4.tar.gz>nimarchive-0.5.4.tar.gz"
+checksum="0e78a59cfb3cf7926f8dff3a4215949ccfaecd6c6dddc3b2e062098b5da03edb
+ c38e8c66c2eac2bc021d450f2b60d0e45c5355df963d0133930448639c0bd8d4"
-if [ -n "$CROSS_BUILD" ]; then
- hostmakedepends+=" libressl-devel"
-fi
+post_extract() {
+ mv ../nimarchive-0.5.4 nimarchive
+}
do_build() {
local arch args
@@ -26,14 +28,28 @@ do_build() {
ppc64*) arch=powerpc64;;
ppc*) arch=powerpc;;
esac
+ LDFLAGS+=" $($PKG_CONFIG --libs-only-l --static openssl)"
+ LDFLAGS+=" $($PKG_CONFIG --libs-only-l --static libarchive)"
+ LDFLAGS+=" -lrt -ldl"
+ : >nim.cfg
+ if [ -z "$CROSS_BUILD" ]; then
+ cat >>nim.cfg <<-EOF
+ gcc.options.always = "$CPPFLAGS $CFLAGS -pthread"
+ gcc.options.linker = "$LDFLAGS"
+ EOF
+ fi
if [ -n "$arch" ]; then
- cat > nim.cfg <<EOF
-$arch.linux.gcc.exe = "$CC"
-$arch.linux.gcc.linkerexe = "$CC"
-EOF
+ cat >>nim.cfg <<-EOF
+ $arch.linux.gcc.exe = "$CC"
+ $arch.linux.gcc.linkerexe = "$CC"
+ $arch.linux.gcc.options.always = "$CPPFLAGS $CFLAGS -pthread"
+ $arch.linux.gcc.options.linker = "$LDFLAGS"
+ EOF
args="--cpu:$arch"
fi
- nimble -y build -d:release --passC:-flto "$args"
+ ln -sf $XBPS_CROSS_BASE/usr/include/archive.h src
+ ln -sf $XBPS_CROSS_BASE/usr/include/archive_entry.h src
+ nimble -y build -d:release --passC:-flto "$args" --path:$wrksrc/nimarchive
}
do_install() {
^ permalink raw reply [flat|nested] 3+ messages in thread