-
Notifications
You must be signed in to change notification settings - Fork 1.3k
node-sass + libsass source coupling #744
Comments
Thanks for your proposal. The idea really is to make user point to any libsass commit and recompile the binary. The steps which our script might follow would be: # in node-sass root directory
#
# when user will run `node scripts/update` (just an example command)
#
# read the value of npmSassConfig.libsass
# from package.json, which is the SHA1 commit hash
# to libsass. Then:
git clone https://github.com/sass/libsass src/libsass
git reset --hard my_favourite_SHA1_commit_hash
npm update # installs missing dev dependencies
node scripts/build -f I think people can do all that today manually. This little automation will not bringing an extraordinary advantage anyway..
What do you mean, can you expand on it? The packaged libsass code is always pointing to the version of libsass we are releasing node-sass against.
Yes and new we have removed the entire Now that you have mentioned, I will remove libsass from package as well. 😉 |
I read #712 and #743 and came to the conclusion they are about binary package downloads, i.e. package with an already compiled binding file. What most packagers need is just a version number and a source file corresponding to this version. During an automated build it is much simpler to get a .zip file than play with git. I have an automated build that installs clean-room operating system, nodejs/iojs, npm and all dependencies - it fetches Besides, users of the package want to know that they have 2.0.1 and they can upgrade to, say, 2.0.2 and not use git hashes only. (Again, this is not a binary executable as in http://github.com/sass/node-sass-binaries but a complete binary package which can be installed with This is similar to #389 problem, but instead of checking some code into |
Today with v2.0.1, if you try |
But this works only after the the module has been built...
I'll try two-zip approach and will see where I can arrive at. |
You can also try |
Walking into this error, brought me here. How do we fix this today, and avoid this in the future?
|
@kevinSuttle, sorry to tell you this but you landed on an unrelated issue. You can search the issue tracker and find the reasons of that exception. |
If PKGCONFIG is set to YES in the proces environment, use pkg-config to locate system libsass to be linked. This way there is no need to checkout a src/libsass submodule at all and the library from the package management system can be used. Otherwise fallback to the bundled libsass. By default, use the bundled library. PR: sass#139 PR: sass#389 PR: sass#744
If PKGCONFIG is set to YES in the proces environment, use pkg-config to locate system libsass to be linked. This way there is no need to checkout a src/libsass submodule at all and the library from the package management system can be used. Otherwise fallback to the bundled libsass. By default, use the bundled library. PR: sass#139 PR: sass#389 PR: sass#744
Use environment variables to control how libsass is linked: LIBSASS_EXT variable empty or unset Build a bundled libsass source (from src/libsass). This is the default. LIBSASS_EXT=auto libsass is located using pkg-config and linked dynamically LIBSASS_EXT=yes LIBSASS_CFLAGS= LIBSASS_LDFLAGS= Link libsass manually, by adding compiler flags and linker flags in LIBSASS_CFLAGS and LIBSASS_LDFLAGS, respectively. For example this way libsass can be linked in statically (on Unix): LIBSASS_EXT=yes LIBSASS_CFLAGS=-I/usr/local/include LIBSASS_LDFLAGS=/usr/local/lib/libsass.a When using LIBSASS_EXT there is no need to checkout the libsass source into src/libsass submodule and the library from the package management system can be used. PR: sass#139 PR: sass#389 PR: sass#744
Use environment variables to control how libsass is linked: LIBSASS_EXT variable empty or unset Build a bundled libsass source (from src/libsass). This is the default. LIBSASS_EXT=auto libsass is located using pkg-config and linked dynamically LIBSASS_EXT=yes LIBSASS_CFLAGS= LIBSASS_LDFLAGS= Link libsass manually, by adding compiler flags and linker flags in LIBSASS_CFLAGS and LIBSASS_LDFLAGS, respectively. For example this way libsass can be linked in statically (on Unix): LIBSASS_EXT=yes LIBSASS_CFLAGS=-I/usr/local/include LIBSASS_LDFLAGS=/usr/local/lib/libsass.a When using LIBSASS_EXT there is no need to checkout the libsass source into src/libsass submodule and the library from the package management system can be used. PR: sass#139 PR: sass#389 PR: sass#744
Use environment variables to control how libsass is linked: LIBSASS_EXT variable empty or unset Build a bundled libsass source (from src/libsass). This is the default. LIBSASS_EXT=auto libsass is located using pkg-config and linked dynamically LIBSASS_EXT=yes LIBSASS_CFLAGS= LIBSASS_LDFLAGS= Link libsass manually, by adding compiler flags and linker flags in LIBSASS_CFLAGS and LIBSASS_LDFLAGS, respectively. For example this way libsass can be linked in statically (on Unix): LIBSASS_EXT=yes LIBSASS_CFLAGS=-I/usr/local/include LIBSASS_LDFLAGS=/usr/local/lib/libsass.a When using LIBSASS_EXT there is no need to checkout the libsass source into src/libsass submodule and the library from the package management system can be used. PR: sass#139 PR: sass#389 PR: sass#744
Use environment variables to control how libsass is linked: LIBSASS_EXT variable empty or unset Build a bundled libsass source (from src/libsass). This is the default. LIBSASS_EXT=auto libsass is located using pkg-config and linked dynamically LIBSASS_EXT=yes LIBSASS_CFLAGS= LIBSASS_LDFLAGS= Link libsass manually, by adding compiler flags and linker flags in LIBSASS_CFLAGS and LIBSASS_LDFLAGS, respectively. For example this way libsass can be linked in statically (on Unix): LIBSASS_EXT=yes LIBSASS_CFLAGS=-I/usr/local/include LIBSASS_LDFLAGS=/usr/local/lib/libsass.a When using LIBSASS_EXT there is no need to checkout the libsass source into src/libsass submodule and the library from the package management system can be used. PR: sass#139 PR: sass#389 PR: sass#744
Use environment variables to control how libsass is linked: LIBSASS_EXT variable empty or unset Build a bundled libsass source (from src/libsass). This is the default. LIBSASS_EXT=auto libsass is located using pkg-config and linked dynamically LIBSASS_EXT=yes LIBSASS_CFLAGS= LIBSASS_LDFLAGS= Link libsass manually, by adding compiler flags and linker flags in LIBSASS_CFLAGS and LIBSASS_LDFLAGS, respectively. For example this way libsass can be linked in statically (on Unix): LIBSASS_EXT=yes LIBSASS_CFLAGS=-I/usr/local/include LIBSASS_LDFLAGS=/usr/local/lib/libsass.a When using LIBSASS_EXT there is no need to checkout the libsass source into src/libsass submodule and the library from the package management system can be used. PR: sass#139 PR: sass#389 PR: sass#744
Use environment variables to control how libsass is linked: LIBSASS_EXT variable empty or unset Build a bundled libsass source (from src/libsass). This is the default. LIBSASS_EXT=auto libsass is located using pkg-config and linked dynamically LIBSASS_EXT=yes LIBSASS_CFLAGS= compiler flags LIBSASS_LDFLAGS= linker flags LIBSASS_LIBRARY= library to link Link libsass manually, by adding compiler and linker flags. For example this way libsass can be linked in statically (on Unix): LIBSASS_EXT=yes LIBSASS_CFLAGS=-I/usr/local/include LIBSASS_LIBRARY=/usr/local/lib/libsass.a When using LIBSASS_EXT there is no need to checkout the libsass source into src/libsass submodule and the library from the package management system can be used. PR: sass#139 PR: sass#389 PR: sass#744
Use environment variables to control how libsass is linked: LIBSASS_EXT variable empty or unset Build a bundled libsass source (from src/libsass). This is the default. LIBSASS_EXT=auto libsass is located using pkg-config and linked dynamically LIBSASS_EXT=yes LIBSASS_CFLAGS= compiler flags LIBSASS_LDFLAGS= linker flags LIBSASS_LIBRARY= library to link Link libsass manually, by adding compiler and linker flags. For example this way libsass can be linked in statically (on Unix): LIBSASS_EXT=yes LIBSASS_CFLAGS=-I/usr/local/include LIBSASS_LIBRARY=/usr/local/lib/libsass.a When using LIBSASS_EXT there is no need to checkout the libsass source into src/libsass submodule and the library from the package management system can be used. PR: sass#139 PR: sass#389 PR: sass#744 Conflicts: scripts/build.js
Use environment variables to control how libsass is linked: LIBSASS_EXT variable empty or unset Build a bundled libsass source (from src/libsass). This is the default. LIBSASS_EXT=auto libsass is located using pkg-config and linked dynamically LIBSASS_EXT=yes LIBSASS_CFLAGS= compiler flags LIBSASS_LDFLAGS= linker flags LIBSASS_LIBRARY= library to link Link libsass manually, by adding compiler and linker flags. For example this way libsass can be linked in statically (on Unix): LIBSASS_EXT=yes LIBSASS_CFLAGS=-I/usr/local/include LIBSASS_LIBRARY=/usr/local/lib/libsass.a When using LIBSASS_EXT there is no need to checkout the libsass source into src/libsass submodule and the library from the package management system can be used. PR: sass#139 PR: sass#389 PR: sass#744
Use environment variables to control how libsass is linked: LIBSASS_EXT variable empty or unset Build a bundled libsass source (from src/libsass). This is the default. LIBSASS_EXT=auto libsass is located using pkg-config and linked dynamically LIBSASS_EXT=yes LIBSASS_CFLAGS= compiler flags LIBSASS_LDFLAGS= linker flags LIBSASS_LIBRARY= library to link Link libsass manually, by adding compiler and linker flags. For example this way libsass can be linked in statically (on Unix): LIBSASS_EXT=yes LIBSASS_CFLAGS=-I/usr/local/include LIBSASS_LIBRARY=/usr/local/lib/libsass.a When using LIBSASS_EXT there is no need to checkout the libsass source into src/libsass submodule and the library from the package management system can be used. PR: sass#139 PR: sass#389 PR: sass#744 Conflicts: scripts/build.js
Use environment variables to control how libsass is linked: LIBSASS_EXT variable empty or unset Build a bundled libsass source (from src/libsass). This is the default. LIBSASS_EXT=auto libsass is located using pkg-config and linked dynamically LIBSASS_EXT=yes LIBSASS_CFLAGS= compiler flags LIBSASS_LDFLAGS= linker flags LIBSASS_LIBRARY= library to link Link libsass manually, by adding compiler and linker flags. For example this way libsass can be linked in statically (on Unix): LIBSASS_EXT=yes LIBSASS_CFLAGS=-I/usr/local/include LIBSASS_LIBRARY=/usr/local/lib/libsass.a When using LIBSASS_EXT there is no need to checkout the libsass source into src/libsass submodule and the library from the package management system can be used. PR: sass#139 PR: sass#389 PR: sass#744 Conflicts: binding.gyp scripts/build.js src/sass_context_wrapper.h
Special case handling for modulo with interpolants
For better packaging I would like to have a complete source of the project in a single zip file.
Normally this is not a problem in Github, since I can simply pulls the zip file of every commit:
(e.g. https://github.com/sass/node-sass/archive/v2.0.1.zip)
Due to our use of submodules, however, the zipfile does not include a proper version of
libsass
as well as test specs are missing (I normally do not need them).There are few possible solutions:
libsass
in our git and have one .zip file including libsass and our node bindings.node-sass
to use an out-of-tree libsass (use extracted sources or use a library)My preferred solution would be 3, is that feasible?
The text was updated successfully, but these errors were encountered: