Closed fpesari closed 4 years ago
You may make such trick:
make config TEST=1
make fetch
make clean
And then, again, on the target system:
make config
# Here we already don't need to call `make fetch`
make
The make config
command forms the full list of dependencies from the project.mk
file which will be automatically fetched by the make fetch
using the dependencies.mk
file.
This is a workaround solution for current state. I think I need to add something like make fetchall
or make tree
to make the complete fetch of source code dependencies into the source code tree.
@fpesari I've committed changes to github-issue-11 branch: 1733eddab96898583b82e419f9f8a69d85b605a2
Now you're able to fetch all possible dependencies into modules
subdirectory and get the source tree portable between different machines.
Please check.
Thank you, much better now! I will make an openSUSE package soon. Are you planning to ship this feature in a future release or shall I use it as a patch?
Yes, I just wanted the feedback from you. Probably @alex-tee would be also interested in this change. I'll ship the new version soon (hours ago or tomorrow).
Just shipped the 0.5.7 release.
In guix I do it differently, since I can't run any make
commands to fetch. I prefetch each dependency manually and place it under modules. This works on Guix:
(define-public lsp-dsp-lib
(package
(name "lsp-dsp-lib")
(version "0.5.6")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/sadko4u/lsp-dsp-lib")
(commit (string-append "lsp-dsp-lib-" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1n5qp9bjsgg1ziy9mqnx034qlzbsp7yl473vk9aigzkyj883dfpj"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no tests
#:make-flags
(list "CC=gcc")
#:phases
(modify-phases %standard-phases
(add-before 'build 'copy-modules
(lambda* (#:key inputs #:allow-other-keys)
(copy-recursively (assoc-ref inputs "lsp-common-lib")
"modules/lsp-common-lib")
(copy-recursively (assoc-ref inputs "lsp-test-fw")
"modules/lsp-test-fw")
#t))
(replace 'configure
(lambda _
(invoke "make" "config" (string-append "PREFIX=" (assoc-ref %outputs "out")))
#t)))))
(inputs
`(("lsp-common-lib" ,(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/sadko4u/lsp-common-lib")
(commit "lsp-common-lib-1.0.7")))
(file-name (git-file-name name version))
(sha256
(base32
"1alxv2ryivbj122gryxrrvyicw6zgbdk15wp010lrq6r1nj7mjxh"))))
("lsp-test-fw" ,(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/sadko4u/lsp-test-fw")
(commit "lsp-test-fw-1.0.5")))
(file-name (git-file-name name version))
(sha256
(base32
"0n4ircp9bgzwfaa6023bvfsb90qvl2iawbihnwivr5id1js5jq3p"))))
))
(home-page "https://github.com/sadko4u/lsp-dsp-lib")
(synopsis "Digital signal processing library")
(description "The LSP DSP library provides a set of functions that perform
SIMD-optimized computing on several hardware architectures. All functions
currently operate on IEEE-754 single-precision floating-point numbers.")
(license license:lgpl3+)))
The best thing for us packagers would be tarball releases with all dependencies included
Yes, an actual release tarball that includes them would be best IMO. You could create one for each release and add the tarballs on the github releases page, so a packager would just download and start building right away
OK, I think I'll put that to the next release.
@alex-tee Created #12 issue for that.
Hello,
for packagers who need to build everything without an internet connection (e.g. openSUSE packagers who use OBS such as myself) the current system is very hard to use, because
make fetch
requires thatmake config
is run and that's system-specific.The best thing for us packagers would be tarball releases with all dependencies included, would that be possible? Else, even being able to run
make fetch
withoutmake config
would be enough, since we could just prepare the tarballs ourselves. Thank you for listening :smile_cat: