 bf3bd5fee1
			
		
	
	
		bf3bd5fee1
		
	
	
	
	
		
			
			Most of the skaware packages already build just fine with pkgsStatic, however the wrapper scripts for execline and stdnotify-wrapper needed the `-lskarlib` argument to go at the end. `utmps` and `nsss` still fail with this error: ``` exec ./tools/install.sh -D -m 600 utmps-utmpd /bin/utmps-utmpd /build/utmps-0.0.3.1/tools/install.sh: line 48: can't create /bin/utmps-utmpd.tmp.479: Permission denied make: *** [Makefile:121: /bin/utmps-utmpd] Error 1 ```
		
			
				
	
	
		
			107 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			107 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| { stdenv, cleanPackaging, fetchurl }:
 | |
| let lib = stdenv.lib;
 | |
| in {
 | |
|   # : string
 | |
|   pname
 | |
|   # : string
 | |
| , version
 | |
|   # : string
 | |
| , sha256
 | |
|   # : string
 | |
| , description
 | |
|   # : list Platform
 | |
| , platforms ? lib.platforms.all
 | |
|   # : list string
 | |
| , outputs ? [ "bin" "lib" "dev" "doc" "out" ]
 | |
|   # TODO(Profpatsch): automatically infer most of these
 | |
|   # : list string
 | |
| , configureFlags
 | |
|   # mostly for moving and deleting files from the build directory
 | |
|   # : lines
 | |
| , postInstall
 | |
|   # : list Maintainer
 | |
| , maintainers ? []
 | |
| 
 | |
| 
 | |
| }:
 | |
| 
 | |
| let
 | |
| 
 | |
|   # File globs that can always be deleted
 | |
|   commonNoiseFiles = [
 | |
|     ".gitignore"
 | |
|     "Makefile"
 | |
|     "INSTALL"
 | |
|     "configure"
 | |
|     "patch-for-solaris"
 | |
|     "src/**/*"
 | |
|     "tools/**/*"
 | |
|     "package/**/*"
 | |
|     "config.mak"
 | |
|   ];
 | |
| 
 | |
|   # File globs that should be moved to $doc
 | |
|   commonMetaFiles = [
 | |
|     "COPYING"
 | |
|     "AUTHORS"
 | |
|     "NEWS"
 | |
|     "CHANGELOG"
 | |
|     "README"
 | |
|     "README.*"
 | |
|   ];
 | |
| 
 | |
| in stdenv.mkDerivation {
 | |
|   inherit pname version;
 | |
| 
 | |
|   src = fetchurl {
 | |
|     url = "https://skarnet.org/software/${pname}/${pname}-${version}.tar.gz";
 | |
|     inherit sha256;
 | |
|   };
 | |
| 
 | |
|   inherit outputs;
 | |
| 
 | |
|   dontDisableStatic = true;
 | |
|   enableParallelBuilding = true;
 | |
| 
 | |
|   configureFlags = configureFlags ++ [
 | |
|     "--enable-absolute-paths"
 | |
|     # We assume every nix-based cross target has urandom.
 | |
|     # This might not hold for e.g. BSD.
 | |
|     "--with-sysdep-devurandom=yes"
 | |
|     (if stdenv.isDarwin
 | |
|       then "--disable-shared"
 | |
|       else "--enable-shared")
 | |
|   ]
 | |
|     # On darwin, the target triplet from -dumpmachine includes version number,
 | |
|     # but skarnet.org software uses the triplet to test binary compatibility.
 | |
|     # Explicitly setting target ensures code can be compiled against a skalibs
 | |
|     # binary built on a different version of darwin.
 | |
|     # http://www.skarnet.org/cgi-bin/archive.cgi?1:mss:623:heiodchokfjdkonfhdph
 | |
|     ++ (lib.optional stdenv.isDarwin
 | |
|          "--build=${stdenv.hostPlatform.system}");
 | |
| 
 | |
|   # TODO(Profpatsch): ensure that there is always a $doc output!
 | |
|   postInstall = ''
 | |
|     echo "Cleaning & moving common files"
 | |
|     ${cleanPackaging.commonFileActions {
 | |
|        noiseFiles = commonNoiseFiles;
 | |
|        docFiles = commonMetaFiles;
 | |
|      }} $doc/share/doc/${pname}
 | |
| 
 | |
|     ${postInstall}
 | |
|   '';
 | |
| 
 | |
|   postFixup = ''
 | |
|     ${cleanPackaging.checkForRemainingFiles}
 | |
|   '';
 | |
| 
 | |
|   meta = {
 | |
|     homepage = "https://skarnet.org/software/${pname}/";
 | |
|     inherit description platforms;
 | |
|     license = stdenv.lib.licenses.isc;
 | |
|     maintainers = with lib.maintainers;
 | |
|       [ pmahoney Profpatsch ] ++ maintainers;
 | |
|   };
 | |
| 
 | |
| }
 |