Giter Club home page Giter Club logo

nixpkgs's Introduction

NixOS logo

Contributors badge Open Collective supporters

Nixpkgs is a collection of over 100,000 software packages that can be installed with the Nix package manager. It also implements NixOS, a purely-functional Linux distribution.

Manuals

  • NixOS Manual - how to install, configure, and maintain a purely-functional Linux distribution
  • Nixpkgs Manual - contributing to Nixpkgs and using programming-language-specific Nix expressions
  • Nix Package Manager Manual - how to write Nix expressions (programs), and how to use Nix command line tools

Community

Other Project Repositories

The sources of all official Nix-related projects are in the NixOS organization on GitHub. Here are some of the main ones:

  • Nix - the purely functional package manager
  • NixOps - the tool to remotely deploy NixOS machines
  • nixos-hardware - NixOS profiles to optimize settings for different hardware
  • Nix RFCs - the formal process for making substantial changes to the community
  • NixOS homepage - the NixOS.org website
  • hydra - our continuous integration system
  • NixOS Artwork - NixOS artwork

Continuous Integration and Distribution

Nixpkgs and NixOS are built and tested by our continuous integration system, Hydra.

Artifacts successfully built with Hydra are published to cache at https://cache.nixos.org/. When successful build and test criteria are met, the Nixpkgs expressions are distributed via Nix channels.

Contributing

Nixpkgs is among the most active projects on GitHub. While thousands of open issues and pull requests might seem a lot at first, it helps consider it in the context of the scope of the project. Nixpkgs describes how to build tens of thousands of pieces of software and implements a Linux distribution. The GitHub Insights page gives a sense of the project activity.

Community contributions are always welcome through GitHub Issues and Pull Requests.

For more information about contributing to the project, please visit the contributing page.

Donations

The infrastructure for NixOS and related projects is maintained by a nonprofit organization, the NixOS Foundation. To ensure the continuity and expansion of the NixOS infrastructure, we are looking for donations to our organization.

You can donate to the NixOS foundation through SEPA bank transfers or by using Open Collective:

License

Nixpkgs is licensed under the MIT License.

Note: MIT license does not apply to the packages built by Nixpkgs, merely to the files in this repository (the Nix expressions, build scripts, NixOS modules, etc.). It also might not apply to patches included in Nixpkgs, which may be derivative works of the packages to which they apply. The aforementioned artifacts are all covered by the licenses of the respective packages.

nixpkgs's People

Contributors

7c6f434c avatar andersontorres avatar artturin avatar bobby285271 avatar dotlambda avatar dtzwill avatar edolstra avatar fabaff avatar figsoda avatar fpletz avatar fridh avatar github-actions[bot] avatar jonringer avatar jtojnar avatar ma27 avatar marsam avatar mic92 avatar mweinelt avatar nequissimus avatar nickcao avatar peti avatar primeos avatar r-ryantm avatar romildo avatar ryantm avatar supersandro2000 avatar vbgl avatar vcunat avatar wegank avatar worldofpeace avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nixpkgs's Issues

apr has unnecessary packages in its closure

Apr installs a directory "$out/build-1" that includes a copy of libtool. This causes apr to have packages such as binutils in its closure. Deleting build-1 causes the apr-util build to fail, however.

mysql and mariadb are bloated, probably due to static linking

Our MySQL 5.1 build is 50 MiB, while 5.5 is 152 MiB. It's mostly in the bin directory, which is 110 MiB. Apparently MySQL does some very bad static linking (for instance, the trivial MySQL utilities "replace" and "resolveip" are both almost 3 MiB).

Missing dependency in groff

When I tried to install groff, the builder failed and complained that the program 'makeinfo' was missing.

Then I tried installing the 'texinfo' package and building again. Magically, it worked! I believe two things are happening: 1) the groff package has an undeclared dependency and 2) it is not being built with proper isolation, for whatever reason.

I'm building on OS X 10.6.8.

Ensure glibc uses bash for system()

This is a known for long impurity of nixpkgs glibc; it calls /bin/sh.

With ludo, we came up with the suggestion that glibc could be patched to refer to a statically-linked bash 'sh', for any /bin/sh reference. That shouldn't introduce any dependency to early bootstrap-tools or so, and fix some portability problems.

Some people write 'make' recipes using bash, too, and maybe this change would fix 'make' recipes as well. An example of such trouble happens with 'attr-2.4.46', which fails to build if /bin/sh is dash.

Mostly blank screen after x-updates merge.

My X display is mostly black with some noise at the top. There is also a square of noise that follows my cursor. It seems like input is working, because when I type my username and password, my computer starts working as if to log me in.

This happens at commit f7436a9 (when x-updates was merged) and does not happen at commit 0b592ce (just before x-updates got merged). NixOS was at 6a9b855 and a4cad32 respectively when I tested those revisions.

More information forthcoming. (I have an AMD graphics card; I will look up the details.)

xf86-video-sis broken

I just noticed that the xf86-video-sis package is broken due to a relocation of the file pixman.h which is now in ${pixman}/include/pixman-1/pixman.h instead of ${pixman}/include/pixman.h.

I was able to fix the build by adding the environment variable

XORG_CFLAGS="-I${xorgserver}/include/xorg -I${pixman}/include/pixman-1"

to the xf86videosis attribute set in <nixpkgs>/pkgs/servers/x11/xorg/default.nix, however I feel that this is not really a solution but rather a work-around.

I hope this proves useful in resolving the issue because I'd be very interested in seeing how to fix this the right way.

I tried not only with the versions of pixman and xf86-video-sis in master but also with pixman-0.28.0 and xf86-video-sis-0.10.7, but the work-around described above still is required.

In case I can help by supplying additional information please let me know.

--keep-failed doesn't preserve build directory on failed multiple-outputs build.

For example:

{ stdenv, fetchurl, libogg }:                                                                                                                                  

stdenv.mkDerivation rec {                                                                                                                                      
  name = "flac-1.2.1";                                                                                                                                         

  src = fetchurl {                                                                                                                                             
    url = mirror://sourceforge/flac/flac-1.2.1.tar.gz;                                                                                                         
    sha256 = "1pry5lgzfg57pga1zbazzdd55fkgk3v5qy4axvrbny5lrr5s8dcn";                                                                                           
  };                                                                                                                                                           

  buildInputs = [ libogg ];                                                                                                                                    

  patches =                                                                                                                                                    
    [ # Fix for building on GCC 4.3.                                                                                                                           
      (fetchurl {                                                                                                                                              
        url = "http://sources.gentoo.org/viewcvs.py/*checkout*/gentoo-x86/media-libs/flac/files/flac-1.2.1-gcc-4.3-includes.patch?rev=1.1";                    
        sha256 = "1m6ql5vyjb2jlp5qiqp6w0drq1m6x6y3i1dnl5ywywl3zd36k0mr";                                                                                       
      })                                                                                                                                                       
    ];                                                                                                                                                         

  enableParallelBuilding = true;                                                                                                                               

  outputs = [ "dev" "out" "bin" "doc" ];                                                                                                                       

  meta = {                                                                                                                                                     
    homepage = http://flac.sourceforge.net;                                                                                                                    
    description = "Library and tools for encoding and decoding the FLAC lossless audio file format";                                                           
  };                                                                                                                                                           
} 

If this is called with stdenv instead of stdenvMulti, it will fail to produce a bin output. This causes an assertion of the form:

builder for '/nix/store/iicb3pqgczqp9wwmjmx1xy3p0j5rsd8w-flac-1.2.1.drv' 
 failed to produce output path '/nix/store/bvb9sq100agrcxnimkcjjlc48any85hd-flac-1.2.1-bin'.` 

Unfortunately, --keep-failed doesn't keep the build directory around, making the source of the problem difficult to debug.

cabal2nix install failure

Mac OS X Lion 10.7.4
nix 1.0 binary install
nixpkgs: 823f7d0

$ nix-env -i cabal2nix
error: assertion failed at `/Users/<user>/code/nixpkgs/pkgs/development/compilers/ghc/6.10.1-binary.nix:7:1'
(use `--show-trace' to show detailed location information)

Adding "x86_64-darwin" to the list of supportedPlatforms in ../compilers/ghc/6.10.1-binary.nix allows cabal2nix to install.

How could ghc 6.10.1 binary be causing a problem with cabal2nix? I am currently using ghc-7.4.1-wrapper.

Automatically use recursive-pth-loader

The recent changes to nixpkgs python allow using an installed library without manually installing runtime dependencies, but only if you have python-recursive-pth-loader in your PYTHONPATH. Ideally the usage of recursive-pth-loader would be transparent to the end-user, is this possible?

@chaoflow @cillianderoiste

GHC 7.4.x & 7.6.x & possibly older are broken wrt static compilation

Test:

$ echo 'main = print "hello"' > hello.hs
$ ghc -O2 --make -static -optc-static -optl-static -optl-pthread hello.hs

/nix/store/3mni8w684pn8rkfywf1xwa3nmb62wwz4-binutils-2.21.1a/bin/ld: cannot find -lgmp
collect2: ld returned 1 exit status

Something is not right with libgmp. On my hand-compiled 7.6.1 for ubuntu it works fine using libgmp3 in it's normal place. I am suspicious as there is a note in the nix expr for 7.6.1 that says the build failed because of gmp.

Omit OpenGL packages from haskell-platform on OS X?

The OpenGL packages from the haskell platform don't work on OS X. Right now my work-around is to just add the constituent packages manually to my GHC (using the with-packages functionality), but it would be nice to be able to just have the haskell platform only install the parts that actually work on the platform.

Once I find out how conditionals in Nix work, I might propose a patch myself, but that can take a while. :P

Can't install wget on OS X due to nettle failing to compile

I see this output:

gcc -I.  -DHAVE_CONFIG_H -g -O2 -ggdb3 -Wno-pointer-sign -Wall -W   -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes   -Wpointer-arith -Wbad-function-cast -Wnested-externs -fPIC  -fPIC -c aes-decrypt-internal.s
aes-decrypt-internal.asm:109:suffix or operands invalid for `push'
aes-decrypt-internal.asm:110:suffix or operands invalid for `push'
aes-decrypt-internal.asm:111:suffix or operands invalid for `push'
aes-decrypt-internal.asm:112:suffix or operands invalid for `push'
aes-decrypt-internal.asm:328:suffix or operands invalid for `pop'
aes-decrypt-internal.asm:329:suffix or operands invalid for `pop'
aes-decrypt-internal.asm:330:suffix or operands invalid for `pop'
aes-decrypt-internal.asm:331:suffix or operands invalid for `pop'
make[1]: *** [aes-decrypt-internal.o] Error 1
make[1]: Leaving directory `/private/tmp/nix-build-8l97dzcxdpi6ra3wry8rkkyv4mnbz5kc-nettle-2.4.drv-0/nettle-2.4'
make: *** [all] Error 2
builder for `/nix/store/8l97dzcxdpi6ra3wry8rkkyv4mnbz5kc-nettle-2.4.drv' failed with exit code 2
cannot build derivation `/nix/store/cvvzb3hhs3g9948md0ghw9p532ggnr6a-gnutls-3.0.22.drv': 1 dependencies couldn't be built
cannot build derivation `/nix/store/4kswdvkcns1j7ck7lgrd3r2gzf38zhzj-wget-1.13.4.drv': 1 dependencies couldn't be built
error: build of `/nix/store/4kswdvkcns1j7ck7lgrd3r2gzf38zhzj-wget-1.13.4.drv' failed

Note that this exact some compiler error happens when I try to install
nixpkgs.haskellPackages_ghc742.ghcMod too.

problems when restoring or restarting old builds

I want to reconstruct this build product: http://hydra.nixos.org/build/2708329

Restart build:
This build cannot be restarted.

Clone build (no changes):
Caught exception in Hydra::Controller::Build->clone_submit "Can't use string ("1") as a HASH ref while "strict refs" in use at /nix/store/pmdx74y2jd9h07bj1cvpi0cvccrxai2i-hydra-0.1pre1084-aa8bf56/libexec/hydra/lib/Hydra/Helper/AddBuilds.pm line 718."

Hydra 0.1pre1084-aa8bf56 (using nix-1.1)

[spotify] spotify-client_0.8.3.278.g21c7566.632-1_amd64.deb not found

The repository of spotify no longer contains the version requested by the package.

[ja@spof:~/src/nixpkgs/pkgs]$ nix-env -i spotify
installing `spotify-0.8.3.278'
these derivations will be built:
  /nix/store/g7qps7pb2l2w8wrsavsxfpi42is1yrp1-spotify-0.8.3.278.drv
  /nix/store/nx7b4i9h1z6dkfcjxm1ay7ga0gf1zpfy-spotify-client_0.8.3.278.g21c7566.632-1_amd64.deb.drv
building path(s) `/nix/store/92wsz0giz7i94a9pa79bfyd0jz25l9y3-spotify-client_0.8.3.278.g21c7566.632-1_amd64.deb'

trying http://repository.spotify.com/pool/non-free/s/spotify/spotify-client_0.8.3.278.g21c7566.632-1_amd64.deb
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
curl: (22) The requested URL returned error: 404
error: cannot download spotify-client_0.8.3.278.g21c7566.632-1_amd64.deb from any mirror
builder for `/nix/store/nx7b4i9h1z6dkfcjxm1ay7ga0gf1zpfy-spotify-client_0.8.3.278.g21c7566.632-1_amd64.deb.drv' failed with exit code 1
cannot build derivation `/nix/store/g7qps7pb2l2w8wrsavsxfpi42is1yrp1-spotify-0.8.3.278.drv': 1 dependencies couldn't be built
error: build of `/nix/store/g7qps7pb2l2w8wrsavsxfpi42is1yrp1-spotify-0.8.3.278.drv' failed```

Perl package need to set DYLD_LIBRARY_PATH on OS X

I tried this command on OS X 10.7 today:

sudo nix-env -iA nixpkgs.perlPackages.CompressRawZlib

It fails all of the tests, because the version of zlib it built with (Nix: 1.2.7) is not the version of zlib the tests find (OS: 1.2.5).

The hack was easy: I added the following to nixpkgs/pkgs/development/perl-modules/generic/build.sh, right before the call to perl Makefile.PL:

export DYLD_LIBRARY_PATH=/nix/store/8lb441lznfdn92aj8jl5gwq0xsg2kxmw-zlib-1.2.7/lib

However, this is something the package should be declaring. I just don't know what that syntax should look like.

autobuild: can't download sources

Installing 'autobuild-3.5' fails on my system with the message "error: cannot download autobuild-3.5.tar.gz from any mirror".

Looking at the autobuild website, it appears that the tarballs have moved to savannah.gnu.org.

Set CONFIG_SHELL to stdenv.shell in default builder

There are cases where chroot builds are not practical (for example, when you are still building stdenv on a platform not supported by Hydra). ./configure will take /bin/bash as shell before checking PATH, but this can be overriden with CONFIG_SHELL environment variable.

Maybe it is a good idea to set this variable? Or maybe just for stdenv and nix dependencies (afterwards it is possible to use chroot builds)

`PYTHONPATH=/nix/store/...python-nose/.../site-packages python` import nose fails

In #206 we remove the setuptools site.py which is created during the installation. Previously it would have been possible to do the following:

$ PYTHONPATH=/nix/store/dfvw3wz9sxgmknhicyl4jyzn4wjsd87p-python-nose-1.2.1/lib/python2.7/site-packages python
Python ....
>>> import nose

This is because the generated site.py would process .pth files in the site-packages directory and add the paths to the egg files to the sys.path.

At the moment it is possible to add the full path to the egg to PYTHONPATH in order for it to be found.

Perhaps we should include the setuptools site.py to the python wrapper to get back the ability to load eggs via the site-packages directory as described above. @chaoflow what do you think?

nix-build --run-env broken?

This is what I get at the moment.

$ nix-build --run-env '<nixpkgs>' -A gimp
warning: you did not specify `--add-root'; the result might be removed by the garbage collector
/nix/store/b48470bj4b8d4x6z5rr62924n30cwsiq-stdenv/setup:93: command not found: shopt
exitHandler:4: command not found: closeNest
runHook:2: bad option: -t
runHook:6: bad substitution

handling of python buildInputs

Currently python packages in propagatedBuildInputs are included into PYTHONPATH and are referenced by a file in the output (propagated-build-native-inputs), which makes them run-time dependencies:

https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/python-modules/generic/wrap.sh:

_addToPythonPath() {
    local dir="$1"
    if [ -n "${pythonPathsSeen[$dir]}" ]; then return; fi
    pythonPathsSeen[$dir]=1
    addToSearchPath program_PYTHONPATH $dir/lib/@libPrefix@/site-packages
    addToSearchPath program_PATH $dir/bin
    local prop="$dir/nix-support/propagated-build-native-inputs"
    if [ -e $prop ]; then
        local i
        for i in $(cat $prop); do
            _addToPythonPath $i
        done
    fi
}

For ELF programs nix can figure out the run-time dependencies by scanning the executables, this fails for python as the dependencies are not referenced in any file.

DISCUSSION:

  • pth files could include such references and would handle PYTHONPATH manipulation
  • a nix-support/python-build-inputs could list python buildInputs, turning them into run-time dependencies and further they would be used in the above _addToPythonPath

Package perl-Compress-Raw-Zlib build not isolated

When building the package 'perl-Compress-Raw-Zlib' on OS X 10.6.8, the builder tells me that my version of the zlib header file (1.2.7) doesn't match the version of zlib I have installed (1.2.3).

I think this means the build environment is being contaminated by the operating system's built-in libraries.

Spotify broken

Currently spotify is broken, because the sources are gone.

I updated the sources, but found myself having to add quite some dependencies to these new versions of the Spotify client. Those changes can be found in my spotify branch aforemny/nixpkgs@a1dfb7b.

However, installing spotify from this branch raises the following error when trying to run spotify.

$ spotify
/nix/store/0m5zs2b3my294j9y353m84bjhd9p3hi1-spotify-0.8.4.103/bin/.spotify-wrapped: error while loading shared libraries: libnss3.so.1d: cannot open shared object file: No such file or directory

A strace on spotify reveals that spotify only looks for this file in the following places and then exits with exit code 127.

/run/opengl-driver/lib/libnss3.so.1d
/nix/store/7dvylm5crlc0sfafcc0n46mb5ch67q0j-glibc-2.13/lib/libnss3.so.1d

It is not clear to me why the path /nix/store/0m5zs2b3my294j9y353m84bjhd9p3hi1-spotify-0.8.4.103/lib is skipped where I created the appropiate symlink.

Any suggestions?

Hidden state with vim_configurable package

What I expected:
I installed vim_configurable and I should have expected python to work arrording shlevy it is on by default.

What I got:
What I got was pythong did not work either :python print "hi" or plugins that needed python.

What I expected:
After getting python working by adding vim.python=true; to .nixpkgs/config.nix. I expected removing vim.python=true; would remove vim's access to python after nix-env -i vim_configurable.

What I got:
Vim still had access to python.

The step below demonstrate the above and an additional difference between my nixos 1.1pre2714... and nix 1.1 on ubuntu.

Nixpkgs "remembers" vim.python=true; after it is removed form .nixpkgs/config.nix

Reproduced in NixOS on VMware and nix on Ubuntu:
Each invocation of vim happens in a new shell created after the nix-env install is finished.

  • nix-env -i vim_configurable.
    ** Vim can not access python test by :python print "Hi" in vim. Should result in error.
  • Add vim.python=true; to .nixpkgs/config.nix
  • nix-env -i vim_configurable.
    ** Vim can now access python test by :python print "Hi" in vim.
  • nix-env -e vim_configurable.
  • Remove vim.python-true; in .nixpkgs/config.nix
  • nix-env -i vim_configurable
    ** Vim can still access python test by :python print "Hi" in vim.
  • Add vim.python=false; to .nixpkgs/config.nix
  • nix-env -i vim_configurable.
    ** Vim can not access python test by :python print "Hi" in vim. -> "Sorry, the command is not available in this version
  • remove vim.python=false; in .nixpkgs/config.nix
  • nix-env -i vim_configurable.
    ** :python print "Hi" in vim. ->
    (ubuntu nix 1.0: vim crashes and gives error report)
    (nixos 1.1pre2714_2f3f413: vim has acces to python)
  • Add vim.python=true; to .nixpkgs/config.nix
  • nix-env -i vim_configurable.
    ** :python print "Hi" in vim. ->
    (ubuntu nix 1.0: vim crashes and gives error report)
    (nixos 1.1pre2714_2f3f413: vim has acces to python)

There is some some state that is saved in-between installs which seems undesirable.

gnome3 improvements

Quick guide on gnome3 https://wiki.gnome.org/SysAdminGuide

List of issues to be fixed:

  • Documentation for GNOME 3 packaging (see #16285)
  • Seahorse crashes when clicking on a private key found from the gnome-shell search. Since 3.12, it does not even show in the applications.
  • Grilo upnp does not show in the totem sidebar [possibly fixed]
  • Other browsers installed from nix-env cannot be chosen as default application. [possibly fixed]
  • GNOME sometimes loses the background/lock settings [possibly fixed]
  • The default background cannot be chosen from the list of possible backgrounds. [upstream issue]
  • Icons of user-installed applications via nix-env are missing from the gnome-shell activity [possibly fixed]
  • Cheese is able to show the webcam, but cannot take photos. Something is wrong with gst plugins or such... Maybe relevant: https://bugzilla.redhat.com/show_bug.cgi?id=1227010
  • Update gdm to 3.18, there's some wip code for 3.16. Now we're at 3.14.
  • Could not compile gtkmm 3.18 with new pangomm for weird c++11/libsigc++ errors.
  • Cannot update profile in gnome-control-center. #10025
  • There's some bluetooth support, but somehow GNOME cannot find adapters/devices, nothing shows up. See http://lists.usefulinc.com/pipermail/gnome-bluetooth/2016-July/001515.html.

Some journalctl warnings to cleanup:

  • org.gnome.Calculator.SearchProvider[12182]: Error: ErrorCode.UNKNOWN_VARIABLE [possibly fixed]
  • org.gnome.Characters.BackgroundService[4183]: (gjs:5031): Gjs-WARNING **: JS ERROR: Error: Requiring GjsPrivate, version none: Typelib file for namespace 'Gtk', version '3.0' not found [possibly fixed]

Missing core packages left to be packaged:

  • seed
  • mousetweaks (see #39509)
  • mm-common [is it needed?]
  • gtkmm

List of apps to be packaged:

  • gnome-color-manager [integrated into GNOME Control Center?]
  • gnome-initial-setup (not nixos friendly)
  • gnome-sound-recorder [broken]
  • nemiver
  • orca
  • rygel
  • gnome-tweak-tool

Samba: reduce bloat by linking dynamically

Samba is insanely bloated:

$ nix-build -A samba
/nix/store/i8qvmdq9b3q38ma8w0y04jzgf32xavd2-samba-3.6.7

$ du -sch ./result/
110M    ./result/

$ ls -l ./result/bin/
total 72872
-r-xr-xr-x 1 root nixbld 1862096 Dec 31  1969 eventlogadm
-r-xr-xr-x 1 root nixbld    4641 Dec 31  1969 findsmb
-r-xr-xr-x 1 root nixbld 8219864 Dec 31  1969 net
-r-xr-xr-x 1 root nixbld 1593640 Dec 31  1969 nmblookup
-r-xr-xr-x 1 root nixbld 3070992 Dec 31  1969 ntlm_auth
-r-xr-xr-x 1 root nixbld 2024040 Dec 31  1969 pdbedit
...

The main reason seems to be that the binaries in bin and sbin are statically linked against libsmbclient and libnetapi, even though we build dynamic versions of those.

The Samba source code says:

# WORKAROUND:
#   until we have organized other internal subsystems (as util, registry
#   and smbconf) into shared libraries, we CAN NOT link libnetapi
#   dynamically to samba programs.
#
LINK_LIBNETAPI=STATIC

LINK_LIBSMBCLIENT=STATIC

so it's not clear if dynamic linking is currently safe. However, https://bugs.archlinux.org/task/24678 suggests that using Samba's alternative "waf"-based build system does the right thing. So maybe we should investigate that.

gimp import pygtk error

(gimp:25808): LibGimpBase-WARNING **: gimp: gimp_wire_read(): error
Traceback (most recent call last):
  File "/nix/store/k52r98d6xqqf5aky4gah80ca2xak1s5x-gimp-2.8.2/lib/gimp/2.0/plug-ins/text-brush.py", line 20, in <module>
    from gimpfu import *
  File "/nix/store/k52r98d6xqqf5aky4gah80ca2xak1s5x-gimp-2.8.2/lib/gimp/2.0/python/gimpfu.py", line 76, in <module>
    import gimp
ImportError: could not import pygtk

remove helpers from pythonPackages

It would be great if nix-env -iA pythonPackages would install all python packages. Therefore it would be great to remove fetchgit, fetchsvn, stdenv, buildPythonPackages and other helpers from the attribute set.

Perhaps ghcWithPackages should change the GHC.Paths module

ghcWithPackages refers to development/compilers/ghc/with-packages.nix.

When a program uses GHC.Paths.ghc, it gets /nix/store/xcsn1rgn9m94m66wakardg0fnr26pq0y-ghc-7.4.2-wrapper/bin/ghc (the ghc-wrapper shell script) on my machine, but the actual GHC shell script that ghcWithPackages generates and is in my PATH is /nix/store/6s8zylpykahxwlxr3ar8bi1s6slpqbjx-haskell-env-ghc-7.4.2/bin/ghc.

This leads to problems with for example the doctests package. I've asked the doctests author to consider using GHC from PATH, but perhaps it would be possible to patch the GHC.Paths module instead?

Builders should use ${stdenv.shell} instead of /bin/sh

Any Nix expression that refers to the impure path /bin/sh should be fixed to use ${stdenv.shell} (which can be assumed to be Bash).

Potential offenders are (determined by for n in $(grep -Rl /bin/sh pkgs); do echo "- [ ] $n"; done at 2017-01-03):

  • pkgs/tools/compression/gzip/default.nix
  • pkgs/tools/package-management/nixui/generate.sh
  • pkgs/tools/package-management/checkinstall/glibc-check.patch
  • pkgs/tools/text/gnugrep/default.nix
  • pkgs/tools/text/patchutils/drop-comments.patch
  • pkgs/tools/filesystems/bcache-tools/bcache-udev-modern.patch
  • pkgs/tools/admin/daemontools/default.nix
  • pkgs/tools/typesetting/tex/texlive/fixHashes.sh
  • pkgs/tools/typesetting/lout/builder.sh
  • pkgs/tools/virtualization/nixos-container/nixos-container.pl
  • pkgs/tools/virtualization/xe-guest-utilities/default.nix
  • pkgs/tools/backup/store-backup/default.nix
  • pkgs/tools/archivers/rpmextract/rpmextract.sh
  • pkgs/tools/archivers/sharutils/default.nix
  • pkgs/tools/security/eid-mw/eid-nssdb.in
  • pkgs/tools/security/ecryptfs/default.nix
  • pkgs/tools/networking/zap/default.nix
  • pkgs/tools/networking/ccnet/default.nix
  • pkgs/tools/networking/badvpn/default.nix
  • pkgs/tools/networking/network-manager/default.nix
  • pkgs/tools/misc/xfstests/default.nix
  • pkgs/tools/misc/qjoypad/default.nix
  • pkgs/tools/misc/autojump/default.nix
  • pkgs/tools/misc/fileschanged/unused-variables.debian.patch
  • pkgs/tools/misc/debootstrap/default.nix
  • pkgs/tools/misc/grub/2.0x.nix
  • pkgs/tools/misc/grub/trusted.nix
  • pkgs/tools/graphics/povray/default.nix
  • pkgs/tools/graphics/briss/default.nix
  • pkgs/tools/graphics/zxing/zxing.sh
  • pkgs/tools/graphics/zxing/java-zxing.sh
  • pkgs/tools/graphics/zxing/zxing-cmdline-runner.sh
  • pkgs/tools/graphics/zxing/zxing-cmdline-encoder.sh
  • pkgs/tools/X11/xnee/default.nix
  • pkgs/desktops/gnustep/make/wrapper.sh
  • pkgs/desktops/kde-4.14/l10n/l10n-manifest.sh
  • pkgs/desktops/kde-4.14/kde-package/kde-manifest.sh
  • pkgs/shells/bash/4.4.nix
  • pkgs/shells/bash/4.3.nix
  • pkgs/shells/bash/cygwin-bash-4.3.33-1.src.patch
  • pkgs/shells/bash/update-patch-set.sh
  • pkgs/shells/dash/default.nix
  • pkgs/build-support/fetchzip/nix-prefetch-zip
  • pkgs/build-support/fetchsvn/nix-prefetch-svn
  • pkgs/build-support/release/ant-build.nix
  • pkgs/build-support/setup-hooks/patch-shebangs.sh
  • pkgs/build-support/docker/default.nix
  • pkgs/build-support/upstream-updater/update-upstream-data.sh
  • pkgs/build-support/upstream-updater/create-src-info.sh
  • pkgs/build-support/upstream-updater/update-walker.sh
  • pkgs/build-support/upstream-updater/create-src-info-git.sh
  • pkgs/build-support/upstream-updater/urls-from-page.sh
  • pkgs/build-support/icon-conv-tools/bin/extractWinRscIconsToStdFreeDesktopDir.sh
  • pkgs/build-support/icon-conv-tools/bin/icoFileToHiColorTheme
  • pkgs/build-support/vm/windows/default.nix
  • pkgs/build-support/vm/default.nix
  • pkgs/build-support/fetchbzr/nix-prefetch-bzr
  • pkgs/build-support/fetchcvs/nix-prefetch-cvs
  • pkgs/build-support/singularity-tools/default.nix
  • pkgs/build-support/kdewrapper/default.nix
  • pkgs/development/tools/tradcpp/tradcpp-configure.patch
  • pkgs/development/tools/java/jclasslib/builder.sh
  • pkgs/development/tools/misc/ctags/wrapped.nix
  • pkgs/development/tools/misc/ccache/default.nix
  • pkgs/development/tools/misc/distcc/default.nix
  • pkgs/development/tools/misc/libtool/libtool2.nix
  • pkgs/development/tools/misc/libtool/default.nix
  • pkgs/development/tools/misc/autoconf/2.64.nix
  • pkgs/development/tools/misc/autoconf/default.nix
  • pkgs/development/tools/misc/autoconf/2.13.nix
  • pkgs/development/tools/misc/automake/automake-1.13.x.nix
  • pkgs/development/tools/misc/automake/automake-1.14.x.nix
  • pkgs/development/tools/misc/automake/automake-1.15.x.nix
  • pkgs/development/tools/misc/automake/automake-1.12.x.nix
  • pkgs/development/tools/misc/automake/automake-1.11.x.nix
  • pkgs/development/tools/build-managers/buildbot/default.nix
  • pkgs/development/interpreters/guile/default.nix
  • pkgs/development/interpreters/picolisp/default.nix
  • pkgs/development/ocaml-modules/gmetadom/gcc-4.3.dpatch
  • pkgs/development/libraries/aqbanking/update.sh
  • pkgs/development/libraries/beignet/default.nix
  • pkgs/development/libraries/nss/default.nix
  • pkgs/development/libraries/nss/nss-3.21-gentoo-fixups.patch
  • pkgs/development/libraries/cloog-ppl/default.nix
  • pkgs/development/libraries/libgpg-error/default.nix
  • pkgs/development/libraries/pango/default.nix
  • pkgs/development/libraries/glibc/common.nix
  • pkgs/development/libraries/ccnx/default.nix
  • pkgs/development/libraries/icu/default.nix
  • pkgs/development/libraries/postgis/pg_db_postgis_enable.sh
  • pkgs/development/libraries/postgis/pg_db_postgis_fix_or_load_sql_dump.sh
  • pkgs/development/libraries/cloog/default.nix
  • pkgs/development/libraries/cloog/0.18.0.nix
  • pkgs/development/python-modules/libgpuarray/cuda/default.nix
  • pkgs/development/lisp-modules/clwrapper/common-lisp.sh
  • pkgs/development/lisp-modules/clwrapper/build-with-lisp.sh
  • pkgs/development/lisp-modules/clwrapper/cl-wrapper.sh
  • pkgs/development/lisp-modules/define-package.nix
  • pkgs/development/lisp-modules/from-quicklisp/barebones-quicklisp-expression.sh
  • pkgs/development/lisp-modules/from-quicklisp/asdf-description.sh
  • pkgs/development/lisp-modules/from-quicklisp/quicklisp-beta-env.sh
  • pkgs/development/lisp-modules/from-quicklisp/quicklisp-dependencies.sh
  • pkgs/development/mobile/titaniumenv/examples/kitchensink/generatekeystore.sh
  • pkgs/development/mobile/androidenv/generate-sources.sh
  • pkgs/development/mobile/androidenv/generate-platforms.sh
  • pkgs/development/mobile/androidenv/fetch.sh
  • pkgs/development/mobile/androidenv/generate-sysimages.sh
  • pkgs/development/mobile/androidenv/generate-addons.sh
  • pkgs/development/perl-modules/expression-generator/retrieve-file-link.sh
  • pkgs/development/perl-modules/expression-generator/retrieve-meta-yaml.sh
  • pkgs/development/perl-modules/expression-generator/make-clean-dir.sh
  • pkgs/development/perl-modules/expression-generator/requirements.sh
  • pkgs/development/perl-modules/expression-generator/full-requirements.sh
  • pkgs/development/perl-modules/expression-generator/filtered-requirements.sh
  • pkgs/development/perl-modules/expression-generator/write-nix-expression.sh
  • pkgs/development/perl-modules/expression-generator/source-download-link.sh
  • pkgs/development/perl-modules/expression-generator/grab-url.sh
  • pkgs/development/perl-modules/expression-generator/retrieve-modulepage.sh
  • pkgs/development/web/remarkjs/generate.sh
  • pkgs/development/node-packages/generate.sh
  • pkgs/development/node-packages/node-env.nix
  • pkgs/development/compilers/ccl/default.nix
  • pkgs/development/compilers/fsharp/default.nix
  • pkgs/development/compilers/ocaml/configure-3.08.0
  • pkgs/development/compilers/adobe-flex-sdk/default.nix
  • pkgs/development/compilers/ghc/gcc-clang-wrapper.sh
  • pkgs/development/compilers/rust/print-hashes.sh
  • pkgs/development/compilers/openjdk/8.nix
  • pkgs/development/compilers/cmdstan/default.nix
  • pkgs/development/misc/avr8-burn-omat/default.nix
  • pkgs/test/mkOption/test.sh
  • pkgs/applications/editors/music/tuxguitar/default.nix
  • pkgs/applications/version-management/smartgithg/install_freedesktop_items.sh
  • pkgs/applications/virtualization/xen/generic.nix
  • pkgs/applications/science/logic/coq/configure.8.3.patch
  • pkgs/applications/science/logic/iprover/default.nix
  • pkgs/applications/science/logic/hol_light/default.nix
  • pkgs/applications/science/geometry/drgeo/struct.patch
  • pkgs/applications/science/misc/simgrid/default.nix
  • pkgs/applications/science/misc/openmodelica/update-src-libs-git.sh
  • pkgs/applications/science/misc/openmodelica/update-src-libs-svn.sh
  • pkgs/applications/audio/abcde/default.nix
  • pkgs/applications/display-managers/lightdm/fix-paths.patch
  • pkgs/applications/networking/cluster/mesos/nixos.patch
  • pkgs/applications/networking/instant-messengers/telegram/telegram-cli/default.nix
  • pkgs/applications/networking/instant-messengers/telepathy/kde/update.sh
  • pkgs/applications/networking/browsers/google-chrome/default.nix
  • pkgs/applications/networking/browsers/w3m/cygwin.patch
  • pkgs/applications/networking/browsers/chromium/update.sh
  • pkgs/applications/misc/keepass/extractWinRscIconsToStdFreeDesktopDir.sh
  • pkgs/applications/misc/freemind/default.nix
  • pkgs/applications/misc/translate-shell/default.nix
  • pkgs/applications/misc/cdrtools/fix-paths.patch
  • pkgs/applications/misc/googleearth/default.nix
  • pkgs/applications/misc/openjump/default.nix
  • pkgs/applications/misc/thinking-rock/default.nix
  • pkgs/applications/misc/jbidwatcher/default.nix
  • pkgs/applications/graphics/qscreenshot/default.nix
  • pkgs/applications/graphics/zgrviewer/default.nix
  • pkgs/applications/graphics/alchemy/default.nix
  • pkgs/applications/graphics/sane/backends/generic.nix
  • pkgs/applications/graphics/swingsane/default.nix
  • pkgs/applications/graphics/wings/default.nix
  • pkgs/applications/graphics/shutter/default.nix
  • pkgs/applications/graphics/digikam/5.nix
  • pkgs/applications/graphics/xzgv/fix-linker-paths.patch
  • pkgs/applications/video/handbrake/default.nix
  • pkgs/applications/video/simplescreenrecorder/fix-paths.patch
  • pkgs/applications/video/zdfmediathk/default.nix
  • pkgs/applications/video/shotcut/default.nix
  • pkgs/data/misc/geolite-legacy/builder.sh
  • pkgs/games/eduke32/default.nix
  • pkgs/games/andyetitmoves/default.nix
  • pkgs/games/zangband/default.nix
  • pkgs/games/openttd/default.nix
  • pkgs/games/trigger/default.nix
  • pkgs/games/tremulous/default.nix
  • pkgs/games/crawl/crawl_purify.patch
  • pkgs/games/oilrush/default.nix
  • pkgs/games/freeorion/fix-paths.sh
  • pkgs/games/vessel/default.nix
  • pkgs/games/worldofgoo/default.nix
  • pkgs/games/ue4/generate-expr-from-cdn.sh
  • pkgs/games/mars/default.nix
  • pkgs/games/minecraft-server/default.nix
  • pkgs/misc/seafile-shared/default.nix
  • pkgs/misc/drivers/foomatic-filters/default.nix
  • pkgs/misc/drivers/hplip/3.15.9.nix
  • pkgs/misc/drivers/hplip/default.nix
  • pkgs/misc/vim-plugins/vim-utils.nix
  • pkgs/misc/freestyle/default.nix
  • pkgs/misc/cups/drivers/mfcj6510dwlpr/default.nix
  • pkgs/misc/emulators/retrofe/default.nix
  • pkgs/misc/emulators/wine/builder-wow.sh
  • pkgs/os-specific/gnu/mig/default.nix
  • pkgs/os-specific/linux/nfs-utils/default.nix
  • pkgs/os-specific/linux/udisks/2-default.nix
  • pkgs/os-specific/linux/alsa-plugins/wrapper.nix
  • pkgs/os-specific/linux/bbswitch/default.nix
  • pkgs/os-specific/linux/util-linux/default.nix
  • pkgs/os-specific/linux/rfkill/udev.nix
  • pkgs/os-specific/linux/rfkill/rfkill-hook.sh
  • pkgs/os-specific/linux/tp_smapi/default.nix
  • pkgs/servers/xmpp/pyMAILt/default.nix
  • pkgs/servers/xmpp/pyIRCt/default.nix
  • pkgs/servers/meteor/main.patch
  • pkgs/servers/nosql/eventstore/default.nix
  • pkgs/servers/x11/xquartz/startx
  • pkgs/servers/x11/xquartz/privileged
  • pkgs/servers/x11/xquartz/xinitrc
  • pkgs/servers/x11/xorg/darwin/bundle_main.patch
  • pkgs/servers/shellinabox/default.nix
  • pkgs/servers/mail/postfix/postfix-script-shell.patch
  • pkgs/servers/asterisk/runtime-vardirs.patch
  • pkgs/stdenv/generic/default.nix
  • pkgs/stdenv/freebsd/trivial-bootstrap.sh
  • pkgs/stdenv/nix/default.nix
  • pkgs/stdenv/cygwin/wrap-exes-to-find-dlls.sh
  • pkgs/stdenv/linux/bootstrap-tools/scripts/unpack-bootstrap-tools.sh
  • pkgs/stdenv/darwin/make-bootstrap-tools.nix
  • pkgs/stdenv/darwin/unpack-bootstrap-tools.sh
  • pkgs/stdenv/darwin/standard-sandbox.sb
  • pkgs/stdenv/darwin/default.nix

[moderncv-1.0] cannot build, bad sha256 hash

When I want to install texlive-full I have this message.

[ja@spof:~/src/nixpkgs/pkgs]$ nix-env -i texlive-full
output path `/nix/store/xp86a90jlh6h7937v7a79k7k82224s68-moderncv.zip' should have sha256 hash `a37022029c1928c0eebaad01b48706a0bb0e6fc907b2dd590e67728b87d6007b', instead has `cd69470a01c5cb73fd92253555bf6ab565d42dc7b25ed9231567fbb803f7364f'
cannot build derivation `/nix/store/jjsjy99jprp81ghyrkkji5lp8vxf2d14-moderncv-1.0.drv': 1 dependencies couldn't be built
killing process 8744
cannot build derivation `/nix/store/zrilimmlhrmv9qyxg6ihb5vvz4cbmbp4-TeXLive-linkdir.drv': 1 dependencies couldn't be built
error: build of `/nix/store/zrilimmlhrmv9qyxg6ihb5vvz4cbmbp4-TeXLive-linkdir.drv' failed

buildr_1_4_7 comes with serious regressions; restore buildr_1_4_6

buildr_1_4_7 in is a rubygem for the Apache Buildr build system.

The upstream 1.4.7 release of Buildr has a few serious regressions compared with version 1.4.6 that prevent some projects from compiling with Buildr 1.4.7.

Would it be possible to keep the (old) expression for 1_4_6 around, alongside 1_4_7?

There should be a way for nix expressions to specify a composition with 1_4_6 specifically (for projects that are hit by the regression).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.