uboot: (firmwareOdroidC2/C4) don't invoke patch tool, use patches = [] instead

https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh#L948
this can do it nicely.

Signed-off-by: Anton Arapov <anton@deadbeef.mx>
This commit is contained in:
Anton Arapov 2021-04-03 12:58:10 +02:00 committed by Alan Daniels
commit 56de2bcd43
30691 changed files with 3076956 additions and 0 deletions

View file

@ -0,0 +1,2 @@
source 'https://rubygems.org'
gem '3llo', '1.3.1'

View file

@ -0,0 +1,27 @@
GEM
remote: https://rubygems.org/
specs:
3llo (1.3.1)
tty-prompt (~> 0.20)
pastel (0.8.0)
tty-color (~> 0.5)
tty-color (0.6.0)
tty-cursor (0.7.1)
tty-prompt (0.23.1)
pastel (~> 0.8)
tty-reader (~> 0.8)
tty-reader (0.9.0)
tty-cursor (~> 0.7)
tty-screen (~> 0.8)
wisper (~> 2.0)
tty-screen (0.8.1)
wisper (2.0.1)
PLATFORMS
ruby
DEPENDENCIES
3llo (= 1.3.1)
BUNDLED WITH
2.2.33

View file

@ -0,0 +1,17 @@
{ lib, ruby_3_0, bundlerApp, fetchpatch }:
bundlerApp {
pname = "3llo";
ruby = ruby_3_0;
gemdir = ./.;
exes = [ "3llo" ];
meta = with lib; {
description = "Trello interactive CLI on terminal";
license = licenses.mit;
homepage = "https://github.com/qcam/3llo";
maintainers = with maintainers; [ ];
};
}

View file

@ -0,0 +1,86 @@
{
"3llo" = {
dependencies = ["tty-prompt"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1w327skga2lpq9rbqqxy6w1r6k9k1l8prk5wmzrycvydn1wp7jk2";
type = "gem";
};
version = "1.3.1";
};
pastel = {
dependencies = ["tty-color"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0xash2gj08dfjvq4hy6l1z22s5v30fhizwgs10d6nviggpxsj7a8";
type = "gem";
};
version = "0.8.0";
};
tty-color = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0aik4kmhwwrmkysha7qibi2nyzb4c8kp42bd5vxnf8sf7b53g73g";
type = "gem";
};
version = "0.6.0";
};
tty-cursor = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0j5zw041jgkmn605ya1zc151bxgxl6v192v2i26qhxx7ws2l2lvr";
type = "gem";
};
version = "0.7.1";
};
tty-prompt = {
dependencies = ["pastel" "tty-reader"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1j4y8ik82azjxshgd4i1v4wwhsv3g9cngpygxqkkz69qaa8cxnzw";
type = "gem";
};
version = "0.23.1";
};
tty-reader = {
dependencies = ["tty-cursor" "tty-screen" "wisper"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1cf2k7w7d84hshg4kzrjvk9pkyc2g1m3nx2n1rpmdcf0hp4p4af6";
type = "gem";
};
version = "0.9.0";
};
tty-screen = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "18jr6s1cg8yb26wzkqa6874q0z93rq0y5aw092kdqazk71y6a235";
type = "gem";
};
version = "0.8.1";
};
wisper = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1rpsi0ziy78cj82sbyyywby4d0aw0a5q84v65qd28vqn79fbq5yf";
type = "gem";
};
version = "2.0.1";
};
}

View file

@ -0,0 +1,42 @@
{ lib, buildGoModule, fetchFromGitHub, makeWrapper }:
buildGoModule rec {
pname = "3mux";
version = "1.1.0";
src = fetchFromGitHub {
owner = "aaronjanse";
repo = pname;
rev = "v${version}";
sha256 = "sha256-QT4QXTlJf2NfTqXE4GF759EoW6Ri12lxDyodyEFc+ag=";
};
nativeBuildInputs = [ makeWrapper ];
vendorSha256 = "sha256-tbziQZIA1+b+ZtvA/865c8YQxn+r8HQy6Pqaac2kwcU=";
# This is a package used for internally testing 3mux. It's meant for
# use by 3mux maintainers/contributors only.
excludedPackages = [ "fuzz" ];
# 3mux needs to have itself in the path so users can run `3mux detach`.
# This ensures that, while inside 3mux, the binary in the path is the
# same version as the 3mux hosting the session. This also allows users
# to use 3mux via `nix run nixpkgs#_3mux` (otherwise they'd get "command
# not found").
postInstall = ''
wrapProgram $out/bin/3mux --prefix PATH : $out/bin
'';
meta = with lib; {
description = "Terminal multiplexer inspired by i3";
longDescription = ''
Terminal multiplexer with out-of-the-box support for search,
mouse-controlled scrollback, and i3-like keybindings
'';
homepage = "https://github.com/aaronjanse/3mux";
license = licenses.mit;
maintainers = with maintainers; [ aaronjanse Br1ght0ne ];
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,27 @@
{ lib, stdenv, fetchFromGitHub, writeText, conf ? null }:
stdenv.mkDerivation rec {
pname = "abduco";
version = "2020-04-30";
src = fetchFromGitHub {
owner = "martanne";
repo = "abduco";
rev = "8c32909a159aaa9484c82b71f05b7a73321eb491";
sha256 = "0a3p8xljhpk7zh203s75248blfir15smgw5jmszwbmdpy4mqzd53";
};
preBuild = lib.optionalString (conf != null)
"cp ${writeText "config.def.h" conf} config.def.h";
installFlags = [ "install-completion" ];
CFLAGS = lib.optionalString stdenv.isDarwin "-D_DARWIN_C_SOURCE";
meta = with lib; {
homepage = "http://brain-dump.org/projects/abduco";
license = licenses.isc;
description = "Allows programs to be run independently from its controlling terminal";
maintainers = with maintainers; [ pSub ];
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,26 @@
{ lib, python3 }:
with python3.pkgs;
buildPythonApplication rec {
pname = "adafruit-ampy";
version = "1.1.0";
src = fetchPypi {
inherit pname version;
sha256 = "f4cba36f564096f2aafd173f7fbabb845365cc3bb3f41c37541edf98b58d3976";
};
nativeBuildInputs = [ setuptools-scm ];
propagatedBuildInputs = [ click python-dotenv pyserial ];
# No tests
doCheck = false;
meta = with lib; {
homepage = "https://github.com/pycampers/ampy";
license = licenses.mit;
description = "Utility to interact with a MicroPython board over a serial connection";
maintainers = with maintainers; [ etu ];
};
}

View file

@ -0,0 +1,30 @@
{ lib
, python3Packages
}:
python3Packages.buildPythonApplication rec {
pname = "addic7ed-cli";
version = "1.4.6";
src = python3Packages.fetchPypi {
inherit pname version;
sha256 = "182cpwxpdybsgl1nps850ysvvjbqlnx149kri4hxhgm58nqq0qf5";
};
propagatedBuildInputs = with python3Packages; [
requests
pyquery
];
# Tests require network access
doCheck = false;
pythonImportsCheck = [ "addic7ed_cli" ];
meta = with lib; {
description = "A commandline access to addic7ed subtitles";
homepage = "https://github.com/BenoitZugmeyer/addic7ed-cli";
license = licenses.mit;
maintainers = with maintainers; [ aethelz ];
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,27 @@
{ lib
, buildGoModule
, fetchFromGitHub
}:
buildGoModule rec {
pname = "addlicense";
version = "1.0.0";
src = fetchFromGitHub {
owner = "google";
repo = "addlicense";
rev = "v${version}";
sha256 = "sha256-Nv7Az3TDtd1P/QWjH92otSV9rIrc2l/mTbGUXhODi7Q=";
};
vendorSha256 = "sha256-2mncc21ecpv17Xp8PA9GIodoaCxNBacbbya/shU8T9Y=";
subPackages = [ "." ];
meta = with lib; {
description = "Ensures source code files have copyright license headers by scanning directory patterns recursively";
homepage = "https://github.com/google/addlicense";
license = licenses.asl20;
maintainers = with maintainers; [ SuperSandro2000 ];
};
}

View file

@ -0,0 +1,34 @@
{ lib
, buildGoModule
, fetchFromGitHub
, testers
, adrgen
}:
buildGoModule rec {
pname = "adrgen";
version = "0.4.0-beta";
src = fetchFromGitHub {
owner = "asiermarques";
repo = "adrgen";
rev = "v${version}";
sha256 = "sha256-2ZE/orsfwL59Io09c4yfXt2enVmpSM/QHlUMgyd9RYQ=";
};
vendorSha256 = "sha256-aDtUD+KKKSE0TpSi4+6HXSBMqF/TROZZhT0ox3a8Idk=";
passthru.tests.version = testers.testVersion {
package = adrgen;
command = "adrgen version";
version = "v${version}";
};
meta = with lib; {
homepage = "https://github.com/asiermarques/adrgen";
description = "A command-line tool for generating and managing Architecture Decision Records";
license = licenses.mit;
platforms = platforms.unix;
maintainers = [ maintainers.ivar ];
};
}

View file

@ -0,0 +1,35 @@
{ lib, stdenv, fetchurl, libiconv }:
stdenv.mkDerivation rec {
version = "3.16";
pname = "aescrypt";
src = fetchurl {
url = "https://www.aescrypt.com/download/v3/linux/${pname}-${version}.tgz";
sha256 = "sha256-4uGS0LReq5dI7+Wel7ZWzFXx+utZWi93q4TUSw7AhNI=";
};
NIX_LDFLAGS = lib.optionalString stdenv.isDarwin "-liconv";
preBuild = ''
substituteInPlace src/Makefile --replace "CC=gcc" "CC?=gcc"
cd src
'';
installPhase= ''
mkdir -p $out/bin
cp aescrypt $out/bin
cp aescrypt_keygen $out/bin
'';
buildInputs = [ libiconv ];
meta = with lib; {
description = "Encrypt files with Advanced Encryption Standard (AES)";
homepage = "https://www.aescrypt.com/";
license = licenses.gpl2;
maintainers = with maintainers; [ lovek323 qknight ];
platforms = lib.platforms.all;
hydraPlatforms = with platforms; unix;
};
}

View file

@ -0,0 +1,28 @@
{ stdenv
, lib
, fetchFromGitHub
}:
stdenv.mkDerivation rec {
pname = "afetch";
version = "2.2.0";
src = fetchFromGitHub {
owner = "13-CF";
repo = "afetch";
rev = "V${version}";
sha256 = "sha256-bHP3DJpgh89AaCX4c1tQGaZ/PiWjArED1rMdszFUq+U=";
};
makeFlags = [
"PREFIX=${placeholder "out"}"
];
meta = with lib; {
description = "A fetch program written in C";
homepage = "https://github.com/13-CF/afetch";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ dan4ik605743 jk ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,41 @@
{ lib, stdenv
, fetchgit
, cmake
, halibut
}:
let
date = "20211129";
rev = "8cd63c5";
in
stdenv.mkDerivation {
pname = "agedu";
version = "${date}.${rev}";
# upstream provides tarballs but it seems they disappear after the next version is released
src = fetchgit {
url = "https://git.tartarus.org/simon/agedu.git";
inherit rev;
hash = "sha256-5wqpL7wrFwIf6lxVte+GXLsXYY0/36EIAUepVNDCnSE=";
};
nativeBuildInputs = [ cmake halibut ];
meta = with lib; {
description = "A Unix utility for tracking down wasted disk space";
longDescription = ''
Most Unix file systems, in their default mode, helpfully record when a
file was last accessed. So if you generated a large amount of data years
ago, forgot to clean it up, and have never used it since, then it ought
in principle to be possible to use those last-access time stamps to tell
the difference between that and a large amount of data you're still
using regularly.
agedu uses this information to tell you which files waste disk space when
you haven't used them since a long time.
'';
homepage = "https://www.chiark.greenend.org.uk/~sgtatham/agedu/";
license = licenses.mit;
maintainers = with maintainers; [ symphorien ];
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,67 @@
{ lib, stdenv, fetchFromGitHub
, pkg-config
, autoconf
, automake111x
, libtool
, glib
, gtk2
, gst_all_1
, gnome2
, gnome-icon-theme
, libnotify
, libxml2
, libunique
, intltool
, gst_plugins ? with gst_all_1; [ gst-plugins-base gst-plugins-good gst-plugins-ugly ]
, wrapGAppsHook
}:
stdenv.mkDerivation rec {
version = "0.3.4";
pname = "alarm-clock-applet";
src = fetchFromGitHub {
owner = "joh";
repo = "alarm-clock";
rev = version;
sha256 = "18blvgy8hmw3jidz7xrv9yiiilnzcj65m6wxhw58nrnbcqbpydwn";
};
nativeBuildInputs = [
pkg-config
intltool
automake111x
autoconf
libtool
gnome2.gnome-common
wrapGAppsHook
];
preConfigure = "./autogen.sh";
buildInputs = [
glib
gtk2
gst_all_1.gstreamer
gnome2.GConf
gnome-icon-theme
libnotify
libxml2
libunique
] ++ gst_plugins;
propagatedUserEnvPkgs = [ gnome2.GConf.out ];
enableParallelBuilding = true;
meta = with lib; {
homepage = "http://alarm-clock.pseudoberries.com/";
description = "A fully-featured alarm clock for your GNOME panel or equivalent";
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = [ maintainers.rasendubi ];
};
}

View file

@ -0,0 +1,68 @@
{ lib, stdenv, fetchurl, fetchpatch
, cmake, perl, go, python3
, protobuf, zlib, gtest, brotli, lz4, zstd, libusb1, pcre2, fmt_7
}:
let
pythonEnv = python3.withPackages(ps: [ ps.protobuf ]);
in
stdenv.mkDerivation rec {
pname = "android-tools";
version = "31.0.3p1";
src = fetchurl {
url = "https://github.com/nmeum/android-tools/releases/download/${version}/android-tools-${version}.tar.xz";
sha256 = "1f2svy381r798hjinrc2xiwz13gkkqxfill343zvv8jqkn8rzxhf";
};
patches = [
# fmt 8 breaks the build but we can use fmt 7 from Nixpkgs:
(fetchpatch {
# Vendor google's version of fmtlib
url = "https://github.com/nmeum/android-tools/commit/21061c1dfb006c22304053c1f6f9e48ae4cbe25a.patch";
sha256 = "17mcsgfc3i8xq4hck0ppnzafh15aljxy7j2q4djcmwnvrkv9kx3s";
revert = true;
excludes = [ "vendor/fmtlib" ];
})
];
nativeBuildInputs = [ cmake perl go ];
buildInputs = [ protobuf zlib gtest brotli lz4 zstd libusb1 pcre2 fmt_7 ];
propagatedBuildInputs = [ pythonEnv ];
# Don't try to fetch any Go modules via the network:
GOFLAGS = [ "-mod=vendor" ];
preConfigure = ''
export GOCACHE=$TMPDIR/go-cache
'';
postInstall = ''
install -Dm755 ../vendor/avb/avbtool.py -t $out/bin
'';
meta = with lib; {
description = "Android SDK platform tools";
longDescription = ''
Android SDK Platform-Tools is a component for the Android SDK. It
includes tools that interface with the Android platform, such as adb and
fastboot. These tools are required for Android app development. They're
also needed if you want to unlock your device bootloader and flash it
with a new system image.
Currently the following tools are supported:
- adb
- fastboot
- mke2fs.android (required by fastboot)
- simg2img, img2simg, append2simg
- lpdump, lpmake, lpadd, lpflash, lpunpack
- mkbootimg, unpack_bootimg, repack_bootimg
'';
# https://developer.android.com/studio/command-line#tools-platform
# https://developer.android.com/studio/releases/platform-tools
homepage = "https://github.com/nmeum/android-tools";
license = with licenses; [ asl20 unicode-dfs-2015 ];
platforms = platforms.linux;
maintainers = with maintainers; [ primeos ];
};
}

View file

@ -0,0 +1,43 @@
{ mkDerivation
, lib
, cmake
, extra-cmake-modules
, pkg-config
, SDL2
, qttools
, xorg
, fetchFromGitHub
, itstool
}:
mkDerivation rec {
pname = "antimicrox";
version = "3.2.3";
src = fetchFromGitHub {
owner = "AntiMicroX";
repo = pname;
rev = version;
sha256 = "sha256-Qn2XT/l3zx0u3twKsQr1cHbaRiLTglQf0WNx8tqtKro=";
};
nativeBuildInputs = [ cmake extra-cmake-modules pkg-config itstool ];
buildInputs = [
SDL2
qttools
xorg.libXtst
];
postPatch = ''
substituteInPlace CMakeLists.txt \
--replace "/usr/lib/udev/rules.d/" "$out/lib/udev/rules.d/"
'';
meta = with lib; {
description = "GUI for mapping keyboard and mouse controls to a gamepad";
inherit (src.meta) homepage;
maintainers = with maintainers; [ sbruder ];
license = licenses.gpl3Plus;
platforms = with platforms; linux;
};
}

View file

@ -0,0 +1,37 @@
source 'https://rubygems.org'
gemspec
group :development, :test do
#gem 'anystyle-data', github: 'inukshuk/anystyle-data'
#gem 'wapiti', github: 'inukshuk/wapiti-ruby'
gem 'bibtex-ruby'
gem 'rake'
gem 'rspec', '~>3.0'
gem 'language_detector', github: 'feedbackmine/language_detector'
gem 'unicode-scripts'
gem 'edtf'
gem 'citeproc'
gem 'unicode_utils' if RUBY_VERSION < '2.4'
end
group :coverage do
gem 'simplecov', require: false
gem 'coveralls', require: false if ENV['CI']
end
group :debug do
gem 'byebug', require: false
end
group :profile do
gem 'ruby-prof', require: false
gem 'gnuplot', require: false
end
group :extra do
gem 'lmdb'
gem 'redis'
gem 'redis-namespace'
gem 'yard'
end

View file

@ -0,0 +1,99 @@
GIT
remote: https://github.com/feedbackmine/language_detector.git
revision: 89102790194150b3a8110ce691f9989b8ce70f8d
specs:
language_detector (0.1.2)
PATH
remote: .
specs:
anystyle (1.3.10)
anystyle-data (~> 1.2)
bibtex-ruby (~> 5.0)
gli (~> 2.17)
namae (~> 1.0)
wapiti (~> 1.0, >= 1.0.2)
GEM
remote: https://rubygems.org/
specs:
activesupport (6.0.3.2)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 0.7, < 2)
minitest (~> 5.1)
tzinfo (~> 1.1)
zeitwerk (~> 2.2, >= 2.2.2)
anystyle-data (1.2.0)
bibtex-ruby (5.1.4)
latex-decode (~> 0.0)
builder (3.2.4)
byebug (11.1.3)
citeproc (1.0.10)
namae (~> 1.0)
concurrent-ruby (1.1.7)
diff-lcs (1.4.4)
docile (1.3.2)
edtf (3.0.5)
activesupport (>= 3.0, < 7.0)
gli (2.19.2)
gnuplot (2.6.2)
i18n (1.8.5)
concurrent-ruby (~> 1.0)
latex-decode (0.3.1)
lmdb (0.5.3)
minitest (5.14.1)
namae (1.0.1)
rake (13.0.1)
redis (4.2.1)
redis-namespace (1.8.0)
redis (>= 3.0.4)
rspec (3.9.0)
rspec-core (~> 3.9.0)
rspec-expectations (~> 3.9.0)
rspec-mocks (~> 3.9.0)
rspec-core (3.9.2)
rspec-support (~> 3.9.3)
rspec-expectations (3.9.2)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.9.0)
rspec-mocks (3.9.1)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.9.0)
rspec-support (3.9.3)
ruby-prof (1.4.1)
simplecov (0.19.0)
docile (~> 1.1)
simplecov-html (~> 0.11)
simplecov-html (0.12.2)
thread_safe (0.3.6)
tzinfo (1.2.7)
thread_safe (~> 0.1)
unicode-scripts (1.6.0)
wapiti (1.0.7)
builder (~> 3.2)
yard (0.9.25)
zeitwerk (2.4.0)
PLATFORMS
ruby
DEPENDENCIES
anystyle!
bibtex-ruby
byebug
citeproc
edtf
gnuplot
language_detector!
lmdb
rake
redis
redis-namespace
rspec (~> 3.0)
ruby-prof
simplecov
unicode-scripts
yard
BUNDLED WITH
2.1.4

View file

@ -0,0 +1,52 @@
# -*- encoding: utf-8 -*-
lib = File.expand_path('../lib/', __FILE__)
$:.unshift lib unless $:.include?(lib)
require 'anystyle/version'
Gem::Specification.new do |s|
s.name = 'anystyle'
s.version = AnyStyle::VERSION.dup
s.platform = Gem::Platform::RUBY
s.authors = ['Sylvester Keil']
s.email = ['http://sylvester.keil.or.at']
s.homepage = 'http://anystyle.io'
s.summary = 'Smart and fast bibliography parser.'
s.description = 'A sophisticated parser for academic reference lists and bibliographies based on machine learning algorithms using conditional random fields.'
s.license = 'BSD-2-Clause'
s.executables = []
s.require_path = 'lib'
s.required_ruby_version = '>= 2.2'
s.add_runtime_dependency('bibtex-ruby', '~>5.0')
s.add_runtime_dependency('anystyle-data', '~>1.2')
s.add_runtime_dependency('gli', '~>2.17')
s.add_runtime_dependency('wapiti', '~>1.0', '>=1.0.2')
s.add_runtime_dependency('namae', '~>1.0')
s.files =
`git ls-files`.split("\n") - `git ls-files spec`.split("\n") - %w{
.coveralls.yml
.gitignore
.rspec
.simplecov
.travis.yml
Gemfile
Rakefile
appveyor.yml
anystyle.gemspec
res/core.xml
}
s.rdoc_options = %w{
--line-numbers
--inline-source
--title "AnyStyle"
--main README.md
}
s.extra_rdoc_files = %w{README.md LICENSE}
end
# vim: syntax=ruby

View file

@ -0,0 +1,44 @@
{ lib
, buildRubyGem
, bundlerEnv
, ruby
, poppler_utils
}:
let
deps = bundlerEnv rec {
name = "anystyle-cli-${version}";
source.sha256 = lib.fakeSha256;
version = "1.3.1";
inherit ruby;
gemdir = ./.;
gemset = lib.recursiveUpdate (import ./gemset.nix) {
anystyle.source = {
remotes = ["https://rubygems.org"];
sha256 = "1w79zcia60nnnyrmyvpd10pmxrpk5c7lj9gmmblhwi8x5mfq9k0n";
type = "gem";
};
};
};
in
buildRubyGem rec {
inherit ruby;
gemName = "anystyle-cli";
pname = gemName;
version = "1.3.1";
source.sha256 = "1a3ifwxwqkp5dnfk9r8qq8kgfb8k1pl7jjdghbb8ixbxz9ac7awy";
propagatedBuildInputs = [ deps ];
preFixup = ''
wrapProgram $out/bin/anystyle --prefix PATH : ${poppler_utils}/bin
'';
meta = with lib; {
description = "Command line interface to the AnyStyle Parser and Finder";
homepage = "https://anystyle.io/";
license = licenses.bsd2;
maintainers = with maintainers; [ shamilton ];
mainProgram = "anystyle";
platforms = platforms.unix;
};
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,28 @@
{ lib, stdenv, fetchCrate, rustPlatform, openssl, pkg-config, Security }:
rustPlatform.buildRustPackage rec {
pname = "apkeep";
version = "0.13.0";
src = fetchCrate {
inherit pname version;
sha256 = "sha256-wFrpzemqBdhEO8cahSV9Qjw4HxCk+TgAVpGaa/IaO0Q=";
};
cargoSha256 = "sha256-6DAzNiNHmzOwg7RlRCorUCW33FTYdfLf6PnTygcL1ok=";
prePatch = ''
rm .cargo/config.toml
'';
nativeBuildInputs = [ pkg-config ];
buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security ];
meta = with lib; {
description = "A command-line tool for downloading APK files from various sources";
homepage = "https://github.com/EFForg/apkeep";
license = licenses.mit;
maintainers = with maintainers; [ jyooru ];
};
}

View file

@ -0,0 +1,21 @@
{ lib, stdenv, fetchurl }:
stdenv.mkDerivation rec {
pname = "apparix";
version = "11-062";
src = fetchurl {
url = "https://micans.org/apparix/src/apparix-${version}.tar.gz";
sha256 = "211bb5f67b32ba7c3e044a13e4e79eb998ca017538e9f4b06bc92d5953615235";
};
doCheck = true;
meta = with lib; {
homepage = "http://micans.org/apparix";
description = "Add directory bookmarks, distant listing, and distant editing to the command line";
maintainers = with maintainers; [ ];
license = licenses.gpl2;
platforms = platforms.all;
};
}

View file

@ -0,0 +1,42 @@
{ lib, fetchFromGitHub, python3Packages, nix-update-script, gnupg }:
python3Packages.buildPythonApplication rec {
pname = "apt-offline";
version = "1.8.4";
src = fetchFromGitHub {
owner = "rickysarraf";
repo = pname;
rev = "v${version}";
sha256 = "RBf/QG0ewLS6gnQTBXi0I18z8QrxoBAqEXZ7dro9z5A=";
};
postPatch = ''
substituteInPlace org.debian.apt.aptoffline.policy \
--replace /usr/bin/ "$out/bin"
substituteInPlace apt_offline_core/AptOfflineCoreLib.py \
--replace /usr/bin/gpgv "${gnupg}/bin/gpgv"
'';
preFixup = ''
rm "$out/bin/apt-offline-gui"
rm "$out/bin/apt-offline-gui-pkexec"
'';
doCheck = false;
pythonimportsCheck = [ "apt-offline" ];
passthru.updateScript = nix-update-script {
attrPath = pname;
};
meta = with lib; {
homepage = "https://github.com/rickysarraf/apt-offline";
description = "Offline APT package manager";
license = licenses.gpl3;
maintainers = [ ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,47 @@
{ lib, buildGoPackage, fetchFromGitHub, installShellFiles, makeWrapper, gnupg, bzip2, xz, graphviz }:
let
version = "1.4.0";
rev = "v${version}";
aptlySrc = fetchFromGitHub {
inherit rev;
owner = "aptly-dev";
repo = "aptly";
sha256 = "06cq761r3bxybb9xn58jii0ggp79mcp3810z1r2z3xcvplwhwnhy";
};
aptlyCompletionSrc = fetchFromGitHub {
rev = "1.0.1";
owner = "aptly-dev";
repo = "aptly-bash-completion";
sha256 = "0dkc4z687yk912lpv8rirv0nby7iny1zgdvnhdm5b47qmjr1sm5q";
};
in
buildGoPackage {
pname = "aptly";
inherit version;
src = aptlySrc;
goPackagePath = "github.com/aptly-dev/aptly";
nativeBuildInputs = [ installShellFiles makeWrapper ];
postInstall = ''
installShellCompletion --bash ${aptlyCompletionSrc}/aptly
wrapProgram "$out/bin/aptly" \
--prefix PATH ":" "${lib.makeBinPath [ gnupg bzip2 xz graphviz ]}"
'';
meta = with lib; {
homepage = "https://www.aptly.info";
description = "Debian repository management tool";
license = licenses.mit;
platforms = platforms.unix;
maintainers = [ maintainers.montag451 ];
};
}

View file

@ -0,0 +1,34 @@
{ lib
, stdenv
, fetchFromGitHub
}:
let
pname = "aquosctl";
in
stdenv.mkDerivation {
inherit pname;
version = "unstable-2014-04-06";
src = fetchFromGitHub {
owner = "jdwhite";
repo = pname;
rev = "b5e48d9ef848188b97dfb24bfcc99d5196cab5f6";
hash = "sha256-FA3LR58KMG5RzSxxnOkVw1+inM/gMGPtw5+JQwSHBYs=";
};
installPhase = ''
runHook preInstall
install -Dm0755 aquosctl $out/bin/aquosctl
runHook postInstall
'';
meta = with lib; {
description = "Sharp Aquos television RS-232 control application";
homepage = "https://github.com/jdwhite/aquosctl";
license = licenses.mit;
maintainers = with maintainers; [ hexa ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,79 @@
{ lib
, resholve
, fetchFromGitHub
, asciidoc
, bash
, coreutils
, gawk
, gnum4
, util-linux
}:
resholve.mkDerivation rec {
pname = "arch-install-scripts";
version = "24";
src = fetchFromGitHub {
owner = "archlinux";
repo = "arch-install-scripts";
rev = "v${version}";
sha256 = "06rydiliis34lbz5fsayhbczs1xqi1a80jnhxafpjf6k3rfji6iq";
};
nativeBuildInputs = [ asciidoc gnum4 ];
preBuild = ''
substituteInPlace ./Makefile \
--replace "PREFIX = /usr/local" "PREFIX ?= /usr/local"
# https://github.com/archlinux/arch-install-scripts/pull/10
substituteInPlace ./common \
--replace "print '%s' \"\$1\"" "printf '%s' \"\$1\""
'';
installFlags = [ "PREFIX=$(out)" ];
doCheck = true;
solutions = {
# Give each solution a short name. This is what you'd use to
# override its settings, and it shows in (some) error messages.
profile = {
# the only *required* arguments are the 3 below
# Specify 1 or more $out-relative script paths. Unlike many
# builders, resholve.mkDerivation modifies the output files during
# fixup (to correctly resolve in-package sourcing).
scripts = [ "bin/arch-chroot" "bin/genfstab" "bin/pacstrap" ];
# "none" for no shebang, "${bash}/bin/bash" for bash, etc.
interpreter = "${bash}/bin/bash";
# packages resholve should resolve executables from
inputs = [ coreutils gawk util-linux ];
# TODO: no good way to resolve mount/umount in Nix builds for now
# see https://github.com/abathur/resholve/issues/29
fake = {
external = [ "mount" "umount" ];
};
# TODO: remove the execer lore override below after
# https://github.com/abathur/binlore/issues/1
execer = [
"cannot:${util-linux}/bin/unshare"
];
};
};
meta = with lib; {
description = "Useful scripts for installing Arch Linux";
longDescription = ''
A small suite of scripts aimed at automating some menial tasks when installing Arch Linux.
'';
homepage = "https://github.com/archlinux/arch-install-scripts";
license = licenses.gpl2Only;
maintainers = with maintainers; [ yayayayaka ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,65 @@
{ lib, stdenv
, fetchurl
, fetchzip
, autoPatchelfHook
, makeWrapper
, jdk
, libsecret
}:
stdenv.mkDerivation rec {
pname = "Archi";
version = "4.7.1";
src =
if stdenv.hostPlatform.system == "x86_64-linux" then
fetchurl {
url = "https://www.archimatetool.com/downloads/archi/Archi-Linux64-${version}.tgz";
sha256 = "0sd57cfnh5q2p17sd86c8wgmqyipg29rz6iaa5brq8mwn8ps2fdw";
}
else if stdenv.hostPlatform.system == "x86_64-darwin" then
fetchzip {
url = "https://www.archimatetool.com/downloads/archi/Archi-Mac-${version}.zip";
sha256 = "1h05lal5jnjwm30dbqvd6gisgrmf1an8xf34f01gs9pwqvqfvmxc";
}
else
throw "Unsupported system";
buildInputs = [
libsecret
];
nativeBuildInputs = [
makeWrapper
] ++ lib.optional stdenv.hostPlatform.isLinux autoPatchelfHook;
installPhase =
if stdenv.hostPlatform.system == "x86_64-linux" then
''
mkdir -p $out/bin $out/libexec
for f in configuration features p2 plugins Archi.ini; do
cp -r $f $out/libexec
done
install -D -m755 Archi $out/libexec/Archi
makeWrapper $out/libexec/Archi $out/bin/Archi \
--prefix PATH : ${jdk}/bin
''
else
''
mkdir -p "$out/Applications"
mv Archi.app "$out/Applications/"
'';
meta = with lib; {
description = "ArchiMate modelling toolkit";
longDescription = ''
Archi is an open source modelling toolkit to create ArchiMate
models and sketches.
'';
homepage = "https://www.archimatetool.com/";
license = licenses.mit;
platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [ earldouglas ];
};
}

View file

@ -0,0 +1,41 @@
{ lib, stdenv, fetchFromGitHub, autoreconfHook, libpcap, makeWrapper, perlPackages }:
stdenv.mkDerivation rec {
pname = "arp-scan";
version = "1.9.7";
src = fetchFromGitHub {
owner = "royhills";
repo = "arp-scan";
rev = version;
sha256 = "1mf7a4f9vzvnkiavc87aqyciswggsb4fpy7j05jxnvjyyxv3l7gp";
};
perlModules = with perlPackages; [
HTTPDate
HTTPMessage
LWP
URI
];
nativeBuildInputs = [ autoreconfHook makeWrapper ];
buildInputs = [ perlPackages.perl libpcap ];
postInstall = ''
for name in get-{oui,iab}; do
wrapProgram "$out/bin/$name" --set PERL5LIB "${perlPackages.makeFullPerlPath perlModules}"
done;
'';
meta = with lib; {
description = "ARP scanning and fingerprinting tool";
longDescription = ''
Arp-scan is a command-line tool that uses the ARP protocol to discover
and fingerprint IP hosts on the local network.
'';
homepage = "http://www.nta-monitor.com/wiki/index.php/Arp-scan_Documentation";
license = licenses.gpl3;
platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [ bjornfor mikoim r-burns ];
};
}

View file

@ -0,0 +1,13 @@
diff --git a/Cargo.lock b/Cargo.lock
index 991ecd8..9e94574 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -11,7 +11,7 @@ dependencies = [
[[package]]
name = "as-tree"
-version = "0.11.1"
+version = "0.12.0"
dependencies = [
"ansi_term",
"atty",

View file

@ -0,0 +1,27 @@
{ lib, fetchFromGitHub, rustPlatform }:
rustPlatform.buildRustPackage rec {
pname = "as-tree";
version = "0.12.0";
src = fetchFromGitHub {
owner = "jez";
repo = pname;
rev = version;
sha256 = "0c0g32pkyhyvqpgvzlw9244c80npq6s8mxy3may7q4qyd7hi3dz5";
};
cargoSha256 = "1m334shcja7kg134b7lnq1ksy67j5b5vblkzamrw06f6r1hkn1rc";
# the upstream 0.12.0 release didn't update the Cargo.lock file properly
# they have updated their release script, so this patch can be removed
# when the next version is released.
cargoPatches = [ ./cargo-lock.patch ];
meta = with lib; {
description = "Print a list of paths as a tree of paths";
homepage = "https://github.com/jez/as-tree";
license = with licenses; [ blueOak100 ];
maintainers = with maintainers; [ jshholland ];
platforms = platforms.all;
};
}

View file

@ -0,0 +1,23 @@
{ lib
, rustPlatform
, fetchCrate
}:
rustPlatform.buildRustPackage rec {
pname = "asciinema-scenario";
version = "0.1.0";
src = fetchCrate {
inherit pname version;
sha256 = "sha256-ubiVpKFU81Ot9V9oMexWSiUXHepoJ6nXtrWVAFhgcYw=";
};
cargoSha256 = "1yf63w2findgqipvgmlkw3pqfkai7mvqp86jg40lvr0mpnvly2ny";
meta = with lib; {
description = "Create asciinema videos from a text file";
homepage = "https://github.com/garbas/asciinema-scenario/";
maintainers = with maintainers; [ garbas ];
license = with licenses; [ mit ];
};
}

View file

@ -0,0 +1,26 @@
{ lib, python3Packages, fetchFromGitHub, glibcLocales }:
python3Packages.buildPythonApplication rec {
pname = "asciinema";
version = "2.1.0";
src = fetchFromGitHub {
owner = "asciinema";
repo = "asciinema";
rev = "v${version}";
sha256 = "1alcz018jrrpasrmgs8nw775a6pf62xq2xgs54c4mb396prdqy4x";
};
checkInputs = [ glibcLocales python3Packages.nose ];
checkPhase = ''
LC_ALL=en_US.UTF-8 nosetests
'';
meta = {
description = "Terminal session recorder and the best companion of asciinema.org";
homepage = "https://asciinema.org/";
license = with lib.licenses; [ gpl3 ];
};
}

View file

@ -0,0 +1,86 @@
{ stdenv, lib, fetchFromGitHub, makeWrapper, installShellFiles, bash, coreutils, curl, git, writeScript }:
let
asdfReshimFile = writeScript "asdf-reshim" ''
#!/usr/bin/env bash
# asdf-vm create "shim" file like this:
#
# exec $ASDF_DIR/bin/asdf exec "node" "$@"
#
# So we should reshim all installed versions every time shell initialized,
# because $out always change
asdfDir="''${ASDF_DIR:-$HOME/.asdf}"
asdfDataDir="''${ASDF_DATA_DIR:-$HOME/.asdf}"
prevAsdfDirFilePath="$asdfDataDir/.nix-prev-asdf-dir-path"
if [ -r "$prevAsdfDirFilePath" ]; then
prevAsdfDir="$(cat "$prevAsdfDirFilePath")"
else
prevAsdfDir=""
fi
if [ "$prevAsdfDir" != "$asdfDir" ]; then
rm -rf "$asdfDataDir"/shims
"$asdfDir"/bin/asdf reshim
echo "$asdfDir" > "$prevAsdfDirFilePath"
fi
'';
asdfPrepareFile = writeScript "asdf-prepare" ''
ASDF_DIR="@asdfDir@"
source "$ASDF_DIR/asdf.sh"
${asdfReshimFile}
'';
in stdenv.mkDerivation rec {
pname = "asdf-vm";
version = "0.10.0";
src = fetchFromGitHub {
owner = "asdf-vm";
repo = "asdf";
rev = "v${version}";
sha256 = "sha256-yWQ74tVYBZszuuE3PaDB758kCjKO6oBOG/Z+T3+82po=";
};
nativeBuildInputs = [
makeWrapper
installShellFiles
];
buildInputs = [
bash
curl
git
];
installPhase = ''
mkdir -p $out/share/asdf-vm
cp -r . $out/share/asdf-vm
mkdir -p $out/etc/profile.d
substitute ${asdfPrepareFile} $out/etc/profile.d/asdf-prepare.sh \
--replace "@asdfDir@" "$out/share/asdf-vm"
mkdir -p $out/bin
makeWrapper $out/share/asdf-vm/bin/asdf $out/bin/asdf \
--set ASDF_DIR $out/share/asdf-vm
installShellCompletion --cmd asdf \
--zsh completions/_asdf \
--fish completions/asdf.fish \
--bash completions/asdf.bash
'';
meta = with lib; {
description = "Extendable version manager with support for Ruby, Node.js, Erlang & more";
homepage = "https://asdf-vm.com/";
license = licenses.mit;
maintainers = [ maintainers.c4605 ];
mainProgram = "asdf";
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,45 @@
{ lib
, stdenv
, fetchFromGitHub
, boost
, catch2
, clasp
, cmake
, gringo
, re2c
}:
stdenv.mkDerivation rec {
version = "1.9.5";
pname = "aspcud";
src = fetchFromGitHub {
owner = "potassco";
repo = "aspcud";
rev = "v${version}";
hash = "sha256-d04GPMoz6PMGq6iiul0zT1C9Mljdl9uJJ2C8MIwcmaw=";
};
postPatch = ''
cp ${catch2}/include/catch2/catch.hpp libcudf/tests/catch.hpp
'';
nativeBuildInputs = [ cmake ];
buildInputs = [ boost clasp gringo re2c ];
cmakeFlags = [
"-DCMAKE_BUILD_TYPE=Release"
"-DASPCUD_GRINGO_PATH=${gringo}/bin/gringo"
"-DASPCUD_CLASP_PATH=${clasp}/bin/clasp"
];
doCheck = true;
meta = with lib; {
description = "Solver for package problems in CUDF format using ASP";
homepage = "https://potassco.org/aspcud/";
platforms = platforms.all;
maintainers = [ maintainers.hakuch ];
license = licenses.gpl3Plus;
};
}

View file

@ -0,0 +1,41 @@
{ lib
, stdenv
, fetchFromGitHub
, installShellFiles
, rustPlatform
, libiconv
, Security
, SystemConfiguration
}:
rustPlatform.buildRustPackage rec {
pname = "atuin";
version = "0.10.0";
src = fetchFromGitHub {
owner = "ellie";
repo = pname;
rev = "v${version}";
sha256 = "sha256-tBOJkAQCL2YGEJ3gJPxBC0swMuwOQENnhLXyms8WW6g";
};
cargoSha256 = "sha256-P4jcJ6pl3ZGjiwNYfEjEiNVnE6mTDRUGl6gZW65Jn0I";
nativeBuildInputs = [ installShellFiles ];
buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security SystemConfiguration ];
postInstall = ''
installShellCompletion --cmd atuin \
--bash <($out/bin/atuin gen-completions -s bash) \
--fish <($out/bin/atuin gen-completions -s fish) \
--zsh <($out/bin/atuin gen-completions -s zsh)
'';
meta = with lib; {
description = "Replacement for a shell history which records additional commands context with optional encrypted synchronization between machines";
homepage = "https://github.com/ellie/atuin";
license = licenses.mit;
maintainers = with maintainers; [ onsails SuperSandro2000 sciencentistguy ];
};
}

View file

@ -0,0 +1,28 @@
{ lib, python3Packages, fetchFromGitHub }:
python3Packages.buildPythonApplication rec {
pname = "audible-cli";
version = "0.1.3";
src = fetchFromGitHub {
owner = "mkb79";
repo = pname;
rev = "v${version}";
sha256 = "0i71vwq2bhndndb0mlx21bc5jkv75cr60max5iaxk23agg3xpgwv";
};
propagatedBuildInputs = with python3Packages; [ aiofiles audible click httpx pillow tabulate toml tqdm packaging setuptools ];
postPatch = ''
substituteInPlace setup.py \
--replace "httpx==0.20.*" "httpx" \
--replace "audible==0.7.2" "audible"
'';
meta = with lib; {
description = "A command line interface for audible package. With the cli you can download your Audible books, cover, chapter files";
license = licenses.agpl3;
homepage = "https://github.com/mkb79/audible-cli";
maintainers = with maintainers; [ jvanbruegge ];
};
}

View file

@ -0,0 +1,53 @@
{ lib, stdenv, fetchFromGitHub, python3, bash }:
stdenv.mkDerivation rec {
pname = "autojump";
version = "22.5.3";
src = fetchFromGitHub {
owner = "wting";
repo = "autojump";
rev = "release-v${version}";
sha256 = "1rgpsh70manr2dydna9da4x7p8ahii7dgdgwir5fka340n1wrcws";
};
buildInputs = [ python3 bash ];
dontBuild = true;
installPhase = ''
python ./install.py -d "$out" -p "" -z "$out/share/zsh/site-functions/"
chmod +x "$out/etc/profile.d/autojump.sh"
install -Dt "$out/share/bash-completion/completions/" -m444 "$out/share/autojump/autojump.bash"
install -Dt "$out/share/fish/vendor_conf.d/" -m444 "$out/share/autojump/autojump.fish"
install -Dt "$out/share/zsh/site-functions/" -m444 "$out/share/autojump/autojump.zsh"
'';
meta = with lib; {
description = "A `cd' command that learns";
longDescription = ''
One of the most used shell commands is cd. A quick survey
among my friends revealed that between 10 and 20% of all
commands they type are actually cd commands! Unfortunately,
jumping from one part of your system to another with cd
requires to enter almost the full path, which isnt very
practical and requires a lot of keystrokes.
Autojump is a faster way to navigate your filesystem. It
works by maintaining a database of the directories you use the
most from the command line. The jstat command shows you the
current contents of the database. You need to work a little
bit before the database becomes usable. Once your database
is reasonably complete, you can jump to a directory by
typing "j dirspec", where dirspec is a few characters of the
directory you want to jump to. It will jump to the most used
directory whose name matches the pattern given in dirspec.
Autojump supports tab-completion.
'';
homepage = "https://github.com/wting/autojump";
license = licenses.gpl3;
platforms = platforms.all;
maintainers = with maintainers; [ domenkozar yurrriq ];
};
}

View file

@ -0,0 +1,26 @@
{lib, stdenv, fetchFromGitHub, git, ronn}:
stdenv.mkDerivation rec {
pname = "automirror";
version = "49";
src = fetchFromGitHub {
owner = "schlomo";
repo = "automirror";
rev = "v${version}";
sha256 = "1syyf7dcm8fbyw31cpgmacg80h7pg036dayaaf0svvdsk0hqlsch";
};
patchPhase = "sed -i s#/usr##g Makefile";
buildInputs = [ git ronn ];
installFlags = [ "DESTDIR=$(out)" ];
meta = with lib; {
homepage = "https://github.com/schlomo/automirror";
description = "Automatic Display Mirror";
license = licenses.gpl3;
platforms = platforms.all;
};
}

View file

@ -0,0 +1,70 @@
{ lib, stdenv
, python3Packages
, fetchFromGitHub
, systemd
, xrandr
, installShellFiles }:
stdenv.mkDerivation rec {
pname = "autorandr";
version = "1.12.1";
buildInputs = [ python3Packages.python ];
nativeBuildInputs = [ installShellFiles ];
# no wrapper, as autorandr --batch does os.environ.clear()
buildPhase = ''
substituteInPlace autorandr.py \
--replace 'os.popen("xrandr' 'os.popen("${xrandr}/bin/xrandr' \
--replace '["xrandr"]' '["${xrandr}/bin/xrandr"]'
'';
outputs = [ "out" "man" ];
installPhase = ''
runHook preInstall
make install TARGETS='autorandr' PREFIX=$out
# zsh completions exist but currently have no make target, use
# installShellCompletions for both
# see https://github.com/phillipberndt/autorandr/issues/197
installShellCompletion --cmd autorandr \
--bash contrib/bash_completion/autorandr \
--zsh contrib/zsh_completion/_autorandr
make install TARGETS='autostart_config' PREFIX=$out DESTDIR=$out
make install TARGETS='manpage' PREFIX=$man
${if systemd != null then ''
make install TARGETS='systemd udev' PREFIX=$out DESTDIR=$out \
SYSTEMD_UNIT_DIR=/lib/systemd/system \
UDEV_RULES_DIR=/etc/udev/rules.d
substituteInPlace $out/etc/udev/rules.d/40-monitor-hotplug.rules \
--replace /bin/systemctl "/run/current-system/systemd/bin/systemctl"
'' else ''
make install TARGETS='pmutils' DESTDIR=$out \
PM_SLEEPHOOKS_DIR=/lib/pm-utils/sleep.d
make install TARGETS='udev' PREFIX=$out DESTDIR=$out \
UDEV_RULES_DIR=/etc/udev/rules.d
''}
runHook postInstall
'';
src = fetchFromGitHub {
owner = "phillipberndt";
repo = "autorandr";
rev = version;
sha256 = "sha256-7SNnbgV6PeseBD6wdilEIOfOL2KVDpnlkSn9SBgRhhM=";
};
meta = with lib; {
homepage = "https://github.com/phillipberndt/autorandr/";
description = "Automatically select a display configuration based on connected devices";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ coroa globin ];
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,36 @@
{ lib, stdenv, fetchurl, asciidoc, libxml2, docbook_xml_dtd_45, libxslt
, docbook_xsl, diffutils, coreutils, gnugrep, gnused
}:
stdenv.mkDerivation rec {
pname = "autorevision";
version = "1.22";
src = fetchurl {
url = "https://github.com/Autorevision/autorevision/releases/download/v%2F${version}/autorevision-${version}.tgz";
sha256 = "sha256-3ktLVC73m2xddq5BhxVKw/FJd6pZ5RVb7fv29dxUoRE=";
};
buildInputs = [
asciidoc libxml2 docbook_xml_dtd_45 libxslt docbook_xsl
];
installFlags = [ "prefix=$(out)" ];
postInstall = ''
sed -e "s|\<cmp\>|${diffutils}/bin/cmp|g" \
-e "s|\<cat\>|${coreutils}/bin/cat|g" \
-e "s|\<grep\>|${gnugrep}/bin/grep|g" \
-e "s|\<sed\>|${gnused}/bin/sed|g" \
-e "s|\<tee\>|${coreutils}/bin/tee|g" \
-i "$out/bin/autorevision"
'';
meta = with lib; {
description = "Extracts revision metadata from your VCS repository";
homepage = "https://autorevision.github.io/";
license = licenses.mit;
platforms = platforms.all;
maintainers = [ maintainers.bjornfor ];
};
}

View file

@ -0,0 +1,49 @@
{ lib, stdenv, fetchurl, jre }:
stdenv.mkDerivation rec {
pname = "aws-mturk-clt";
version = "1.3.0";
src = fetchurl {
url = "https://mturk.s3.amazonaws.com/CLTSource/aws-mturk-clt-${version}.tar.gz";
sha256 = "00yyc7k3iygg83cknv9i2dsaxwpwzdkc8a2l9j56lg999hw3mqm3";
};
installPhase =
''
mkdir -p $out
cp -prvd bin $out/
for i in $out/bin/*.sh; do
sed -i "$i" -e "s|^MTURK_CMD_HOME=.*|MTURK_CMD_HOME=$out\nexport JAVA_HOME=${jre}|"
done
mkdir -p $out/lib
cp -prvd lib/* $out/lib/
''; # */
meta = {
homepage = "https://requester.mturk.com/developer";
description = "Command line tools for interacting with the Amazon Mechanical Turk";
license = lib.licenses.amazonsl;
longDescription =
''
The Amazon Mechanical Turk is a crowdsourcing marketplace that
allows users (requesters) to submit tasks to be performed by
other humans (workers) for a small fee. This package
contains command-line tools for submitting tasks, querying
results, and so on.
The command-line tools expect a file
<filename>mturk.properties<filename> in the current directory,
which should contain the following:
<screen>
access_key=[insert your access key here]
secret_key=[insert your secret key here]
service_url=http://mechanicalturk.amazonaws.com/?Service=AWSMechanicalTurkRequester
</screen>
'';
};
}

View file

@ -0,0 +1,51 @@
{ lib, stdenv, fetchurl, nasm }:
let
inherit (stdenv.hostPlatform.parsed.cpu) bits;
arch = "bandwidth${toString bits}";
in
stdenv.mkDerivation rec {
pname = "bandwidth";
version = "1.11.2";
src = fetchurl {
url = "https://zsmith.co/archives/${pname}-${version}.tar.gz";
sha256 = "sha256-mjtvQAOH9rv12XszGdD5hIX197er7Uc74WfVaP32TpM=";
};
postPatch = ''
sed -i 's,ar ,$(AR) ,g' OOC/Makefile
# Remove unnecessary -m32 for 32-bit targets
sed -i 's,-m32,,g' OOC/Makefile
# Fix wrong comment character
sed -i 's,# 32,; 32,g' routines-x86-32bit.asm
# Fix missing symbol exports for macOS clang
echo global _VectorToVector128 >> routines-x86-64bit.asm
echo global _VectorToVector256 >> routines-x86-64bit.asm
'';
nativeBuildInputs = [ nasm ];
buildFlags = [
"AR=${stdenv.cc.targetPrefix}ar"
"CC=${stdenv.cc.targetPrefix}cc"
"ARM_AS=${stdenv.cc.targetPrefix}as"
"ARM_CC=$(CC)"
"UNAMEPROC=${stdenv.hostPlatform.parsed.cpu.name}"
"UNAMEMACHINE=${stdenv.hostPlatform.parsed.cpu.name}"
arch
];
installPhase = ''
mkdir -p $out/bin
cp ${arch} $out/bin/bandwidth
'';
meta = with lib; {
homepage = "https://zsmith.co/bandwidth.html";
description = "Artificial benchmark for identifying weaknesses in the memory subsystem";
license = licenses.gpl2Plus;
platforms = platforms.x86 ++ platforms.arm ++ platforms.aarch64;
maintainers = with maintainers; [ r-burns ];
};
}

View file

@ -0,0 +1,37 @@
{ fetchFromGitHub
, lib
, python3Packages
}:
python3Packages.buildPythonApplication rec {
pname = "barman";
version = "2.17";
src = fetchFromGitHub {
owner = "EnterpriseDB";
repo = pname;
rev = "release/${version}";
sha256 = "0c4gcs4kglbb2qma4nlvw0ycj1wnsg934p9vs50dvqi9099hxkmb";
};
checkInputs = with python3Packages; [
mock
pytestCheckHook
];
propagatedBuildInputs = with python3Packages; [
argcomplete
azure-identity
azure-storage-blob
boto3
psycopg2
python-dateutil
];
meta = with lib; {
homepage = "https://www.pgbarman.org/";
description = "Backup and Recovery Manager for PostgreSQL";
maintainers = with maintainers; [ freezeboy ];
license = licenses.gpl3Plus;
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,27 @@
{ fetchFromGitHub
, lib, stdenv
}:
stdenv.mkDerivation rec {
pname = "bash_unit";
version = "1.9.1";
src = fetchFromGitHub {
owner = "pgrange";
repo = pname;
rev = "v${version}";
sha256 = "sha256-TtpVldIAqyv+apXmbI+1L0NgZxoKdc6Ffrl4WOqRI9c=";
};
installPhase = ''
mkdir -p $out/bin
cp bash_unit $out/bin/
'';
meta = with lib; {
description = "Bash unit testing enterprise edition framework for professionals";
maintainers = with maintainers; [ pamplemousse ];
platforms = platforms.all;
license = licenses.gpl3Plus;
};
}

View file

@ -0,0 +1,30 @@
{ lib, stdenv
, fetchFromGitHub
}:
stdenv.mkDerivation rec {
pname = "bashcards";
version = "0.1.3";
src = fetchFromGitHub {
owner = "rpearce";
repo = pname;
rev = "v${version}";
sha256 = "1rpqrh0022sbrjvd55a0jvpdqhhka5msf8dsz6adbbmxy3xzgdid";
};
dontBuild = true;
installPhase = ''
mkdir -p $out/bin $out/share/man/man8
cp bashcards.8 $out/share/man/man8/
cp bashcards $out/bin/
'';
meta = with lib; {
description = "Practice flashcards in bash";
homepage = "https://github.com/rpearce/bashcards/";
license = licenses.bsd3;
maintainers = with maintainers; [ rpearce ];
platforms = platforms.all;
};
}

View file

@ -0,0 +1,23 @@
{ lib, python3Packages, fetchFromGitHub }:
python3Packages.buildPythonApplication {
pname = "bashplotlib";
version = "2021-03-31";
src = fetchFromGitHub {
owner = "glamp";
repo = "bashplotlib";
rev = "db4065cfe65c0bf7c530e0e8b9328daf9593ad74";
sha256 = "sha256-0S6mgy6k7CcqsDR1kE5xcXGidF1t061e+M+ZuP2Gk3c=";
};
# No tests
doCheck = false;
meta = with lib; {
homepage = "https://github.com/glamp/bashplotlib";
description = "Plotting in the terminal";
maintainers = with maintainers; [ dtzWill ];
license = licenses.mit;
};
}

View file

@ -0,0 +1,148 @@
{ lib, stdenv, fetchFromGitHub, makeWrapper, bat
# batdiff, batgrep, and batwatch
, coreutils
, getconf
, less
# batgrep
, ripgrep
# prettybat
, withShFmt ? shfmt != null, shfmt ? null
, withPrettier ? nodePackages?prettier, nodePackages ? null
, withClangTools ? clang-tools != null, clang-tools ? null
, withRustFmt ? rustfmt != null, rustfmt ? null
# batwatch
, withEntr ? entr != null, entr ? null
# batdiff
, gitMinimal
, withDelta ? delta != null, delta ? null
# batman
, util-linux
}:
let
# Core derivation that all the others are based on.
# This includes the complete source so the per-script derivations can run the tests.
core = stdenv.mkDerivation rec {
pname = "bat-extras";
version = "2021.04.06";
src = fetchFromGitHub {
owner = "eth-p";
repo = pname;
rev = "v${version}";
sha256 = "sha256-MphI2n+oHZrw8bPohNGeGdST5LS1c6s/rKqtpcR9cLo=";
fetchSubmodules = true;
};
# bat needs to be in the PATH during building so EXECUTABLE_BAT picks it up
nativeBuildInputs = [ bat ];
dontConfigure = true;
postPatch = ''
patchShebangs --build test.sh test/shimexec .test-framework/bin/best.sh
'';
buildPhase = ''
runHook preBuild
bash ./build.sh --minify=none --no-verify
runHook postBuild
'';
# Run the library tests as they don't have external dependencies
doCheck = true;
checkInputs = lib.optionals stdenv.isDarwin [ getconf ];
checkPhase = ''
runHook preCheck
# test list repeats suites. Unique them
declare -A test_suites
while read -r action arg _; do
[[ "$action" == "test_suite" && "$arg" == lib_* ]] &&
test_suites+=(["$arg"]=1)
done <<<"$(bash ./test.sh --compiled --list --porcelain)"
(( ''${#test_suites[@]} != 0 )) || {
echo "Couldn't find any library test suites"
exit 1
}
bash ./test.sh --compiled $(printf -- "--suite %q\n" "''${!test_suites[@]}")
runHook postCheck
'';
installPhase = ''
runHook preInstall
cp -a . $out
runHook postInstall
'';
# A few random files have shebangs. Don't patch them, they don't make it into the final output.
# The per-script derivations will go ahead and patch the files they actually install.
dontPatchShebangs = true;
meta = with lib; {
description = "Bash scripts that integrate bat with various command line tools";
homepage = "https://github.com/eth-p/bat-extras";
license = with licenses; [ mit ];
maintainers = with maintainers; [ bbigras lilyball ];
platforms = platforms.all;
};
};
script =
name: # the name of the script
dependencies: # the tools we need to prefix onto PATH
stdenv.mkDerivation {
pname = "${core.pname}-${name}";
inherit (core) version;
src = core;
nativeBuildInputs = [ makeWrapper ];
# Make the dependencies available to the tests.
buildInputs = dependencies;
# Patch shebangs now because our tests rely on them
postPatch = ''
patchShebangs --host bin/${name}
'';
dontConfigure = true;
dontBuild = true; # we've already built
doCheck = true;
checkInputs = lib.optionals stdenv.isDarwin [ getconf ];
checkPhase = ''
runHook preCheck
bash ./test.sh --compiled --suite ${name}
runHook postCheck
'';
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp -p bin/${name} $out/bin/${name}
'' + lib.optionalString (dependencies != []) ''
wrapProgram $out/bin/${name} \
--prefix PATH : ${lib.makeBinPath dependencies}
'' + ''
runHook postInstall
'';
# We already patched
dontPatchShebangs = true;
inherit (core) meta;
};
optionalDep = cond: dep:
assert cond -> dep != null;
lib.optional cond dep;
in
{
batdiff = script "batdiff" ([ less coreutils gitMinimal ] ++ optionalDep withDelta delta);
batgrep = script "batgrep" [ less coreutils ripgrep ];
batman = script "batman" [ util-linux ];
batwatch = script "batwatch" ([ less coreutils ] ++ optionalDep withEntr entr);
prettybat = script "prettybat" ([]
++ optionalDep withShFmt shfmt
++ optionalDep withPrettier nodePackages.prettier
++ optionalDep withClangTools clang-tools
++ optionalDep withRustFmt rustfmt);
}

View file

@ -0,0 +1,63 @@
{ lib
, stdenv
, rustPlatform
, fetchFromGitHub
, pkg-config
, less
, Security
, libiconv
, installShellFiles
, makeWrapper
}:
rustPlatform.buildRustPackage rec {
pname = "bat";
version = "0.21.0";
src = fetchFromGitHub {
owner = "sharkdp";
repo = pname;
rev = "v${version}";
sha256 = "sha256-eCk0oOHGZNqgqz+JJfIhjWdLgBTpBig+mggi1c3EUDk=";
};
cargoSha256 = "sha256-kYZxtiK9hnHBOMvRoHZK5kyXO9cg/gHBYuaITqKUpbE=";
nativeBuildInputs = [ pkg-config installShellFiles makeWrapper ];
buildInputs = lib.optionals stdenv.isDarwin [ Security libiconv ];
postInstall = ''
installManPage $releaseDir/build/bat-*/out/assets/manual/bat.1
installShellCompletion $releaseDir/build/bat-*/out/assets/completions/bat.{bash,fish,zsh}
'';
# Insert Nix-built `less` into PATH because the system-provided one may be too old to behave as
# expected with certain flag combinations.
postFixup = ''
wrapProgram "$out/bin/bat" \
--prefix PATH : "${lib.makeBinPath [ less ]}"
'';
checkFlags = [ "--skip=pager_more" "--skip=pager_most" ];
doInstallCheck = true;
installCheckPhase = ''
runHook preInstallCheck
testFile=$(mktemp /tmp/bat-test.XXXX)
echo -ne 'Foobar\n\n\n42' > $testFile
$out/bin/bat -p $testFile | grep "Foobar"
$out/bin/bat -p $testFile -r 4:4 | grep 42
rm $testFile
runHook postInstallCheck
'';
meta = with lib; {
description = "A cat(1) clone with syntax highlighting and Git integration";
homepage = "https://github.com/sharkdp/bat";
changelog = "https://github.com/sharkdp/bat/raw/v${version}/CHANGELOG.md";
license = with licenses; [ asl20 /* or */ mit ];
maintainers = with maintainers; [ dywedir lilyball zowoq SuperSandro2000 ];
};
}

View file

@ -0,0 +1,22 @@
{ lib, stdenv , fetchurl, autoreconfHook }:
stdenv.mkDerivation rec {
pname = "bbe";
version = "0.2.2";
src = fetchurl {
url = "mirror://sourceforge/bbe-/${version}/bbe-${version}.tar.gz";
sha256 = "1nyxdqi4425sffjrylh7gl57lrssyk4018afb7mvrnd6fmbszbms";
};
nativeBuildInputs = [ autoreconfHook ];
outputs = [ "out" "doc" ];
meta = with lib; {
description = "A sed-like editor for binary files";
homepage = "http://bbe-.sourceforge.net/";
license = licenses.gpl2Plus;
platforms = platforms.all;
maintainers = [ maintainers.hhm ];
};
}

View file

@ -0,0 +1,169 @@
commit fdda59736ddc048cf38a2c7103f4f5d9eeaf995e
Author: Ben Gamari <ben@smart-cactus.org>
Date: Tue Oct 17 10:51:34 2017 -0400
Try implementing cross-compilation
diff --git a/bc/Makefile.am b/bc/Makefile.am
index d9d412e..fdef633 100644
--- a/bc/Makefile.am
+++ b/bc/Makefile.am
@@ -17,6 +17,7 @@ MAINTAINERCLEANFILES = Makefile.in bc.c bc.h scan.c \
AM_CPPFLAGS = -I$(srcdir) -I$(srcdir)/../h
LIBBC = ../lib/libbc.a
+LIBBC_HOST = ../lib/libbc_host.a
LIBL = @LEXLIB@
LDADD = $(LIBBC) $(LIBL) @READLINELIB@
@@ -29,12 +30,20 @@ $(PROGRAMS): libmath.h $(LIBBC)
scan.o: bc.h
global.o: libmath.h
+
+main_host.c : main.c
+ cp $< $@
-fbcOBJ = main.o bc.o scan.o execute.o load.o storage.o util.o warranty.o
+fbcOBJ = $(addsuffix _host,main.o bc.o scan.o execute.o load.o storage.o util.o warranty.o)
+
+%.o_host : CC:=$(CC_FOR_BUILD)
+
+%.o_host : %.c
+ $(COMPILE) -c $(CFLAGS) $(INCLUDES) -o $@ $<
-libmath.h: libmath.b $(fbcOBJ) $(LIBBC)
+libmath.h: libmath.b $(fbcOBJ) $(LIBBC_HOST)
echo '{0}' > libmath.h
- $(MAKE) global.o
- $(LINK) -o fbc $(fbcOBJ) global.o $(LIBBC) $(LIBL) $(READLINELIB) $(LIBS)
+ $(MAKE) global.o_host
+ $(CC_FOR_BUILD) -o fbc $(fbcOBJ) global.o_host $(LIBBC_HOST) $(LIBL) ${READLINELIB} $(LIBS)
./fbc -c $(srcdir)/libmath.b </dev/null >libmath.h
$(srcdir)/fix-libmath_h
rm -f ./fbc ./global.o
diff --git a/configure.ac b/configure.ac
index fc74573..5cabb73 100644
--- a/configure.ac
+++ b/configure.ac
@@ -20,6 +20,7 @@ m4_define([dc_version], 1.4.1)
AC_INIT([bc],[bc_version])
AC_CONFIG_SRCDIR(doc/bc.1)
+AC_CONFIG_MACRO_DIR([m4])
AM_INIT_AUTOMAKE([dist-bzip2])
AC_CONFIG_HEADERS(config.h)
@@ -35,6 +36,7 @@ AC_DEFINE([DC_COPYRIGHT],
[Define the dc copyright line.])
AC_PROG_CC
+AX_CC_FOR_BUILD
AC_USE_SYSTEM_EXTENSIONS
AM_PROG_LEX
diff --git a/lib/Makefile.am b/lib/Makefile.am
index ec4bf59..c670f5b 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -1,5 +1,5 @@
## Process this file with automake to produce Makefile.in
-noinst_LIBRARIES = libbc.a
+noinst_LIBRARIES = libbc.a libbc_host.a
AM_CPPFLAGS = -I. -I.. -I$(srcdir)/../h
@@ -24,3 +24,11 @@ testmul: testmul.o number.o
specialnumber: newnumber.o
cp newnumber.o number.o
+
+%.o_host : CC:=$(CC_FOR_BUILD)
+%.o_host : %.c
+ $(COMPILE) -c $(CFLAGS) $(INCLUDES) -o $@ $<
+
+libbc_host.a : $(addsuffix _host,$(libbc_a_OBJECTS))
+ ar cru $@ $+
+ ranlib $@
diff --git a/m4/cc_for_build.m4 b/m4/cc_for_build.m4
new file mode 100644
index 0000000..c62ffad
--- /dev/null
+++ b/m4/cc_for_build.m4
@@ -0,0 +1,77 @@
+# ===========================================================================
+# https://www.gnu.org/software/autoconf-archive/ax_cc_for_build.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+# AX_CC_FOR_BUILD
+#
+# DESCRIPTION
+#
+# Find a build-time compiler. Sets CC_FOR_BUILD and EXEEXT_FOR_BUILD.
+#
+# LICENSE
+#
+# Copyright (c) 2010 Reuben Thomas <rrt@sc3d.org>
+# Copyright (c) 1999 Richard Henderson <rth@redhat.com>
+#
+# This program is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation, either version 3 of the License, or (at your
+# option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+# Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program. If not, see <https://www.gnu.org/licenses/>.
+#
+# As a special exception, the respective Autoconf Macro's copyright owner
+# gives unlimited permission to copy, distribute and modify the configure
+# scripts that are the output of Autoconf when processing the Macro. You
+# need not follow the terms of the GNU General Public License when using
+# or distributing such scripts, even though portions of the text of the
+# Macro appear in them. The GNU General Public License (GPL) does govern
+# all other use of the material that constitutes the Autoconf Macro.
+#
+# This special exception to the GPL applies to versions of the Autoconf
+# Macro released by the Autoconf Archive. When you make and distribute a
+# modified version of the Autoconf Macro, you may extend this special
+# exception to the GPL to apply to your modified version as well.
+
+#serial 3
+
+dnl Get a default for CC_FOR_BUILD to put into Makefile.
+AC_DEFUN([AX_CC_FOR_BUILD],
+[# Put a plausible default for CC_FOR_BUILD in Makefile.
+if test -z "$CC_FOR_BUILD"; then
+ if test "x$cross_compiling" = "xno"; then
+ CC_FOR_BUILD='$(CC)'
+ else
+ CC_FOR_BUILD=gcc
+ fi
+fi
+AC_SUBST(CC_FOR_BUILD)
+# Also set EXEEXT_FOR_BUILD.
+if test "x$cross_compiling" = "xno"; then
+ EXEEXT_FOR_BUILD='$(EXEEXT)'
+else
+ AC_CACHE_CHECK([for build system executable suffix], bfd_cv_build_exeext,
+ [rm -f conftest*
+ echo 'int main () { return 0; }' > conftest.c
+ bfd_cv_build_exeext=
+ ${CC_FOR_BUILD} -o conftest conftest.c 1>&5 2>&5
+ for file in conftest.*; do
+ case $file in
+ *.c | *.o | *.obj | *.ilk | *.pdb) ;;
+ *) bfd_cv_build_exeext=`echo $file | sed -e s/conftest//` ;;
+ esac
+ done
+ rm -f conftest*
+ test x"${bfd_cv_build_exeext}" = x && bfd_cv_build_exeext=no])
+ EXEEXT_FOR_BUILD=""
+ test x"${bfd_cv_build_exeext}" != xno && EXEEXT_FOR_BUILD=${bfd_cv_build_exeext}
+fi
+AC_SUBST(EXEEXT_FOR_BUILD)])dnl

View file

@ -0,0 +1,40 @@
{ lib, stdenv, autoreconfHook, buildPackages
, fetchurl, flex, readline, ed, texinfo
}:
stdenv.mkDerivation rec {
pname = "bc";
version = "1.07.1";
src = fetchurl {
url = "mirror://gnu/bc/${pname}-${version}.tar.gz";
sha256 = "62adfca89b0a1c0164c2cdca59ca210c1d44c3ffc46daf9931cf4942664cb02a";
};
configureFlags = [ "--with-readline" ];
# As of 1.07 cross-compilation is quite complicated as the build system wants
# to build a code generator, bc/fbc, on the build machine.
patches = [ ./cross-bc.patch ];
depsBuildBuild = [ buildPackages.stdenv.cc ];
nativeBuildInputs = [
# Tools
autoreconfHook ed flex texinfo
# Libraries for build
buildPackages.readline buildPackages.ncurses
];
buildInputs = [ readline flex ];
doCheck = true; # not cross
# Hack to make sure we never to the relaxation `$PATH` and hooks support for
# compatability. This will be replaced with something clearer in a future
# masss-rebuild.
strictDeps = true;
meta = with lib; {
description = "GNU software calculator";
homepage = "https://www.gnu.org/software/bc/";
license = licenses.gpl3Plus;
platforms = platforms.all;
};
}

View file

@ -0,0 +1,27 @@
{ cmake
, fetchFromGitLab
, lib, stdenv
}:
stdenv.mkDerivation rec {
pname = "bcunit";
version = "linphone-4.4.1";
nativeBuildInputs = [ cmake ];
src = fetchFromGitLab {
domain = "gitlab.linphone.org";
owner = "public";
group = "BC";
repo = pname;
rev = "c5eebcc7f794e9567d3c72d15d3f28bffe6bfd0f";
sha256 = "sha256-8DSfqHerx/V00SJjTSQaG9Rjqx330iG6sGivBDUvQfA=";
};
meta = with lib; {
description = "Belledonne Communications' fork of CUnit test framework. Part of the Linphone project.";
homepage = "https://gitlab.linphone.org/BC/public/bcunit";
license = licenses.lgpl2Plus;
maintainers = with maintainers; [ raskin jluttine ];
platforms = platforms.all;
};
}

View file

@ -0,0 +1,39 @@
{ lib, stdenv, fetchurl, perl, dpkg }:
stdenv.mkDerivation rec {
pname = "bdf2psf";
version = "1.207";
src = fetchurl {
url = "mirror://debian/pool/main/c/console-setup/bdf2psf_${version}_all.deb";
sha256 = "0k9dv4s44k1khrhr6acsb2sqr5iq3d03ync82nzan5j7mckzs76v";
};
nativeBuildInputs = [ dpkg ];
dontConfigure = true;
dontBuild = true;
unpackPhase = ''
runHook preUnpack
dpkg-deb -x $src .
runHook postUnpack
'';
installPhase = "
runHook preInstall
substituteInPlace usr/bin/bdf2psf --replace /usr/bin/perl ${perl}/bin/perl
mv usr $out
runHook postInstall
";
meta = with lib; {
description = "BDF to PSF converter";
homepage = "https://packages.debian.org/sid/bdf2psf";
longDescription = ''
Font converter to generate console fonts from BDF source fonts
'';
license = licenses.gpl2Plus;
maintainers = with maintainers; [ rnhmjoj vrthra ];
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,23 @@
{ lib, stdenv, fetchFromGitHub, cmake }:
stdenv.mkDerivation rec {
pname = "bdf2sfd";
version = "1.1.7";
src = fetchFromGitHub {
owner = "fcambus";
repo = pname;
rev = version;
sha256 = "sha256-q+FLmu2JCDTJ6zC8blkd27jAKWbNpPyKzmUj1bW1mfA=";
};
nativeBuildInputs = [ cmake ];
meta = with lib; {
description = "BDF to SFD converter";
homepage = "https://github.com/fcambus/bdf2sfd";
license = licenses.bsd2;
platforms = platforms.all;
maintainers = with maintainers; [ dtzWill ];
};
}

View file

@ -0,0 +1,20 @@
{ lib, stdenv, fetchurl }:
stdenv.mkDerivation rec {
pname = "bdfresize";
version = "1.5";
src = fetchurl {
url = "http://openlab.ring.gr.jp/efont/dist/tools/bdfresize/${pname}-${version}.tar.gz";
hash = "sha256-RAz8BiCgI35GNSwUoHdMqj8wWXWbCiDe/vyU6EkIl6Y=";
};
patches = [ ./remove-malloc-declaration.patch ];
meta = with lib; {
description = "Tool to resize BDF fonts";
homepage = "http://openlab.ring.gr.jp/efont/dist/tools/bdfresize/";
license = licenses.gpl2Only;
maintainers = with maintainers; [ malvo ];
};
}

View file

@ -0,0 +1,11 @@
Remove an unneeded declaration of malloc so gcc doesn't complain.
--- a/charresize.c
+++ b/charresize.c
@@ -46,7 +46,6 @@ static int bit[8] = { 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01 };
void
processChar(void)
{
- char *malloc();
char *srcimage;
int *dstgray;

View file

@ -0,0 +1,23 @@
{ lib, stdenv, fetchFromGitHub }:
stdenv.mkDerivation rec {
pname = "beats";
version = "1.1";
src = fetchFromGitHub {
owner = "j0hax";
repo = "beats";
rev = "v${version}";
sha256 = "1rdvsqrjpily74y8vwch711401585xckb4p41cfwrmj6vf44jhif";
};
makeFlags = [ "PREFIX=$(out)" "CC=cc" ];
meta = with lib; {
homepage = "https://github.com/j0hax/beats";
license = licenses.gpl3Only;
description = "Swatch Internet Time implemented as a C program";
platforms = platforms.all;
maintainers = [ maintainers.j0hax ];
};
}

View file

@ -0,0 +1,60 @@
{ python3
, lib
}:
let
python = python3.override {
self = python;
packageOverrides = self: super : {
xstatic-bootstrap = super.xstatic-bootstrap.overridePythonAttrs(oldAttrs: rec {
version = "3.3.7.1";
src = oldAttrs.src.override {
inherit version;
sha256 = "0cgihyjb9rg6r2ddpzbjm31y0901vyc8m9h3v0zrhxydx1w9x50c";
};
});
};
};
#We need to use buildPythonPackage here to get the PYTHONPATH build correctly.
#This is needed for services.bepasty
#https://github.com/NixOS/nixpkgs/pull/38300
in with python.pkgs; buildPythonPackage rec {
pname = "bepasty";
version = "0.5.0";
propagatedBuildInputs = [
flask
pygments
setuptools
xstatic
xstatic-bootbox
xstatic-bootstrap
xstatic-jquery
xstatic-jquery-file-upload
xstatic-jquery-ui
xstatic-pygments
];
buildInputs = [ setuptools-scm ];
src = fetchPypi {
inherit pname version;
sha256 = "1y3smw9620w2ia4zfsl2svb9j7mkfgc8z1bzjffyk1w5vryhwikh";
};
checkInputs = [
pytest
selenium
];
# No tests in sdist
doCheck = false;
meta = {
homepage = "https://github.com/bepasty/bepasty-server";
description = "Binary pastebin server";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.makefu ];
};
}

View file

@ -0,0 +1,32 @@
{ appimageTools, lib, fetchurl }:
let
pname = "betterdiscord-installer";
version = "1.0.0-beta";
name = "${pname}-${version}";
src = fetchurl {
url = "https://github.com/BetterDiscord/Installer/releases/download/v${version}/Betterdiscord-Linux.AppImage";
sha256 = "103acb11qmvjmf6g9lgsfm5jyahfwfdqw0x9w6lmv1hzwbs26dsr";
};
appimageContents = appimageTools.extract { inherit name src; };
in appimageTools.wrapType2 {
inherit name src;
extraInstallCommands = ''
mv $out/bin/${name} $out/bin/${pname}
install -m 444 -D ${appimageContents}/betterdiscord.desktop -t $out/share/applications
substituteInPlace $out/share/applications/betterdiscord.desktop \
--replace 'Exec=AppRun' 'Exec=${pname}'
cp -r ${appimageContents}/usr/share/icons $out/share
'';
meta = with lib; {
description = "Installer for BetterDiscord";
homepage = "https://betterdiscord.app";
license = licenses.mit;
maintainers = [ maintainers.ivar ];
platforms = [ "x86_64-linux" ];
};
}

View file

@ -0,0 +1,42 @@
{ lib, stdenvNoCC, fetchFromGitHub }:
stdenvNoCC.mkDerivation rec {
pname = "betterdiscordctl";
version = "2.0.1";
src = fetchFromGitHub {
owner = "bb010g";
repo = "betterdiscordctl";
rev = "v${version}";
sha256 = "0p321rfcihz2779sdd6qfgpxgk5yd53d33vq5pvb50dbdgxww0bc";
};
postPatch = ''
substituteInPlace betterdiscordctl \
--replace "DISABLE_SELF_UPGRADE=" "DISABLE_SELF_UPGRADE=yes"
'';
installPhase = ''
runHook preInstall
mkdir -p "$out/bin" "$out/share/doc/betterdiscordctl"
install -Dm744 betterdiscordctl $out/bin/betterdiscordctl
install -Dm644 README.md $out/share/doc/betterdiscordctl/README.md
runHook postInstall
'';
doInstallCheck = true;
installCheckPhase = ''
$out/bin/betterdiscordctl --version
'';
meta = with lib; {
homepage = "https://github.com/bb010g/betterdiscordctl";
description = "A utility for managing BetterDiscord on Linux";
license = licenses.mit;
maintainers = with maintainers; [ ivar bb010g ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,29 @@
{ lib, stdenvNoCC, fetchFromGitHub, bash }:
stdenvNoCC.mkDerivation rec {
pname = "bfetch";
version = "unstable-2021-05-21";
src = fetchFromGitHub {
owner = "NNBnh";
repo = pname;
rev = "ef88e9d3f815e5074efc8ef4b7f32be6818130f2";
sha256 = "sha256-jS9zI8b+z3KbI+LeHFwIMJfEmAKSzO8HRZ2rk35hJCk=";
};
buildInputs = [ bash ];
postPatch = ''
patchShebangs --host bin/bfetch
'';
makeFlags = [ "PREFIX=$(out)" ];
meta = with lib; {
description = "A SuperB general-purpose fetch displayer written in portable sh";
homepage = "https://github.com/NNBnh/bfetch";
license = licenses.gpl3Only;
platforms = platforms.all;
maintainers = with maintainers; [ fortuneteller2k ];
};
}

View file

@ -0,0 +1,27 @@
{ lib, stdenv, fetchurl, perl }:
stdenv.mkDerivation rec {
pname = "bfr";
version = "1.6";
src = fetchurl {
url = "http://www.sourcefiles.org/Utilities/Text_Utilities/bfr-${version}.tar.bz2";
sha256 = "0fadfssvj9klj4dq9wdrzys1k2a1z2j0p6kgnfgbjv0n1bq6h4cy";
};
patches =
[ (fetchurl {
url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/app-misc/bfr/files/bfr-1.6-perl.patch";
sha256 = "1pk9jm3c1qzs727lh0bw61w3qbykaqg4jblywf9pvq5bypk88qfj";
})
];
buildInputs = [ perl ];
meta = with lib; {
description = "A general-purpose command-line pipe buffer";
license = lib.licenses.gpl2;
maintainers = with maintainers; [ pSub ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,21 @@
{ lib, stdenv, fetchurl, ocaml, perl }:
stdenv.mkDerivation {
pname = "bibtex2html";
version = "1.99";
src = fetchurl {
url = "https://www.lri.fr/~filliatr/ftp/bibtex2html/bibtex2html-1.99.tar.gz";
sha256 = "07gzrs4lfrkvbn48cgn2gn6c7cx3jsanakkrb2irj0gmjzfxl96j";
};
buildInputs = [ ocaml perl ];
meta = with lib; {
description = "A collection of tools for translating from BibTeX to HTML";
homepage = "https://www.lri.fr/~filliatr/bibtex2html/";
license = licenses.gpl2;
platforms = ocaml.meta.platforms or [];
maintainers = [ maintainers.scolobb ];
};
}

View file

@ -0,0 +1,27 @@
{ lib, stdenv, fetchurl, perl }:
stdenv.mkDerivation rec {
pname = "bibtool";
version = "2.68";
src = fetchurl {
url = "http://www.gerd-neugebauer.de/software/TeX/BibTool/BibTool-${version}.tar.gz";
sha256 = "1ymq901ckaysq2n1bplk1064rb2njq9n30pii15w157y0lxcwd3i";
};
# Perl for running test suite.
buildInputs = [ perl ];
installTargets = [ "install" "install.man" ];
doCheck = true;
checkTarget = "test";
meta = with lib; {
description = "Tool for manipulating BibTeX bibliographies";
homepage = "http://www.gerd-neugebauer.de/software/TeX/BibTool/index.en.html";
license = licenses.gpl2;
platforms = platforms.all;
maintainers = [ maintainers.rycee ];
};
}

View file

@ -0,0 +1,42 @@
{ lib
, stdenv
, fetchurl
, static ? stdenv.hostPlatform.isStatic
}:
stdenv.mkDerivation rec {
pname = "bibutils";
version = "7.2";
src = fetchurl {
url = "mirror://sourceforge/bibutils/bibutils_${version}_src.tgz";
sha256 = "sha256-bgKK7x6Kaz5azvCYWEp7tocI81z+dAEbNBwR/qXktcM=";
};
preConfigure = lib.optionalString stdenv.isDarwin ''
substituteInPlace lib/Makefile.dynamic \
--replace '-Wl,-soname,$(SONAME)' ""
'';
configureFlags = [
(if static then "--static" else "--dynamic")
"--install-dir" "$(out)/bin"
"--install-lib" "$(out)/lib"
];
dontAddPrefix = true;
doCheck = true;
checkTarget = "test";
preCheck = lib.optionalString stdenv.isDarwin ''
export DYLD_LIBRARY_PATH=`pwd`/lib
'';
meta = with lib; {
description = "Bibliography format interconversion";
longDescription = "The bibutils program set interconverts between various bibliography formats using a common MODS-format XML intermediate. For example, one can convert RIS-format files to Bibtex by doing two transformations: RIS->MODS->Bibtex. By using a common intermediate for N formats, only 2N programs are required and not N²-N. These programs operate on the command line and are styled after standard UNIX-like filters.";
homepage = "https://sourceforge.net/p/bibutils/home/Bibutils/";
license = licenses.gpl2;
maintainers = [ maintainers.garrison ];
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,34 @@
{ lib, stdenv, fetchurl, pkg-config, python3, xmlbird,
cairo, gdk-pixbuf, libgee, glib, gtk3, webkitgtk, libnotify, sqlite, vala,
gobject-introspection, gsettings-desktop-schemas, wrapGAppsHook }:
stdenv.mkDerivation rec {
pname = "birdfont";
version = "2.30.0";
src = fetchurl {
url = "https://birdfont.org/releases/${pname}-${version}.tar.xz";
sha256 = "sha256-aIhJXmzLY2Sw9mFe2AmLkXb+YRnFu1pMnFeDF+zfHRE=";
};
nativeBuildInputs = [ python3 pkg-config vala gobject-introspection wrapGAppsHook ];
buildInputs = [ xmlbird libgee cairo gdk-pixbuf glib gtk3 webkitgtk libnotify sqlite gsettings-desktop-schemas ];
postPatch = ''
substituteInPlace install.py \
--replace 'platform.version()' '"Nix"'
patchShebangs .
'';
buildPhase = "./build.py";
installPhase = "./install.py";
meta = with lib; {
description = "Font editor which can generate fonts in TTF, EOT, SVG and BIRDFONT format";
homepage = "https://birdfont.org";
license = licenses.gpl3;
maintainers = with maintainers; [ dtzWill ];
};
}

View file

@ -0,0 +1,32 @@
{ lib, stdenv, fetchurl, python3, pkg-config, vala, glib, gobject-introspection }:
stdenv.mkDerivation rec {
pname = "xmlbird";
version = "1.2.12";
src = fetchurl {
url = "https://birdfont.org/${pname}-releases/lib${pname}-${version}.tar.xz";
sha256 = "15z4rvii3p54g2hasibjnf83c1702d84367fnl8pbisjqqrdcl04";
};
nativeBuildInputs = [ python3 pkg-config vala gobject-introspection ];
buildInputs = [ glib ];
postPatch = ''
substituteInPlace configure \
--replace 'platform.dist()[0]' '"nix"'
patchShebangs .
'';
buildPhase = "./build.py";
installPhase = "./install.py";
meta = with lib; {
description = "XML parser for Vala and C programs";
homepage = "https://birdfont.org/xmlbird.php";
license = licenses.lgpl3;
maintainers = with maintainers; [ dtzWill ];
};
}

View file

@ -0,0 +1,24 @@
{ lib, stdenv, fetchFromGitHub, ncurses, readline, autoreconfHook }:
stdenv.mkDerivation rec {
pname = "bitwise";
version = "0.43";
src = fetchFromGitHub {
owner = "mellowcandle";
repo = "bitwise";
rev = "v${version}";
sha256 = "18sz7bfpq83s2zhw7c35snz6k3b6rzad2mmfq2qwmyqwypbp1g7l";
};
buildInputs = [ ncurses readline ];
nativeBuildInputs = [ autoreconfHook ];
meta = with lib; {
description = "Terminal based bitwise calculator in curses";
homepage = "https://github.com/mellowcandle/bitwise";
license = licenses.gpl3Only;
maintainers = [ maintainers.whonore ];
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,45 @@
{ lib
, python3
}:
with python3.pkgs;
buildPythonApplication rec {
pname = "bkyml";
version = "1.4.3";
src = fetchPypi {
inherit pname version;
sha256 = "01kpx35572mp4xl2fjyvfk39jfgfjcyzymbifk76891kaqkjb7r9";
};
# The pyscaffold is not a runtime dependency but just a python project bootstrapping tool. Thus,
# instead of implement this package in nix we remove a dependency on it and fix up the version
# of the package, that has been affected by the pyscaffold package dependency removal.
postPatch = ''
substituteInPlace setup.py \
--replace "['pyscaffold>=3.0a0,<3.1a0'] + " "" \
--replace "use_pyscaffold=True" ""
substituteInPlace src/bkyml/skeleton.py --replace \
"from bkyml import __version__" \
"__version__ = \"${version}\""
'';
# Don't run tests because they are broken when run within
# buildPythonApplication for reasons I don't quite understand.
doCheck = false;
pythonImportsCheck = [ "bkyml" ];
propagatedBuildInputs = [
ruamel-yaml
setuptools
];
meta = with lib; {
homepage = "https://github.com/joscha/bkyml";
description = "A CLI tool to generate a pipeline.yaml file for Buildkite on the fly.";
license = licenses.mit;
maintainers = with maintainers; [ olebedev ];
};
}

View file

@ -0,0 +1,22 @@
{ lib, fetchFromGitHub, rustPlatform }:
rustPlatform.buildRustPackage rec {
pname = "blflash";
version = "0.3.3";
src = fetchFromGitHub {
owner = "spacemeowx2";
repo = "blflash";
rev = "v${version}";
sha256 = "sha256-hPScmivtugtZm848Itzg4Tb9rppZny+rKi3IBuUxxQY=";
};
cargoSha256 = "sha256-/y3R8B2TOf8jeB9tcewoA9EGN6kj/EPMTjU6rfTF5Vc=";
meta = with lib; {
description = "An bl602 serial flasher written in Rust";
homepage = "https://github.com/spacemeowx2/blflash";
license = with licenses; [ mit asl20 ];
maintainers = with maintainers; [ _0x4A6F ];
};
}

View file

@ -0,0 +1,45 @@
{ lib
, stdenv
, fetchFromGitHub
, pkg-config
, libusb1
}:
stdenv.mkDerivation rec {
pname = "blink1";
version = "2.2.0";
src = fetchFromGitHub {
owner = "todbot";
repo = "blink1-tool";
rev = "v${version}";
fetchSubmodules = true;
hash = "sha256-xuCjPSQUQ/KOcdsie/ndecUiEt+t46m4eI33PXJoAAY=";
};
postPatch = ''
substituteInPlace Makefile \
--replace "@git submodule update --init" "true"
'';
nativeBuildInputs = [ pkg-config ];
buildInputs = [ libusb1 ];
makeFlags = [
"GIT_TAG=v${version}"
"USBLIB_TYPE=HIDAPI"
"HIDAPI_TYPE=LIBUSB"
];
hardeningDisable = [ "format" ];
installFlags = [ "PREFIX=${placeholder "out"}" ];
meta = with lib; {
description = "Command line client for the blink(1) notification light";
homepage = "https://blink1.thingm.com/";
license = with licenses; [ cc-by-sa-40 ];
maintainers = with maintainers; [ cransom ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,26 @@
{ lib, fetchFromGitHub, python3Packages }:
python3Packages.buildPythonApplication rec {
pname = "bmap-tools";
version = "3.6";
src = fetchFromGitHub {
owner = "intel";
repo = "bmap-tools";
rev = "v${version}";
sha256 = "01xzrv5nvd2nvj91lz4x9s91y9825j9pj96z0ap6yvy3w2dgvkkl";
};
propagatedBuildInputs = with python3Packages; [ six ];
# tests fail only on hydra.
doCheck = false;
meta = with lib; {
description = "bmap-related tools";
homepage = "https://github.com/intel/bmap-tools";
license = licenses.gpl2;
maintainers = [ maintainers.dezgeg ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,34 @@
{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, ncurses, libconfuse
, libnl }:
stdenv.mkDerivation rec {
pname = "bmon";
version = "4.0";
src = fetchFromGitHub {
owner = "tgraf";
repo = "bmon";
rev = "v${version}";
sha256 = "1ilba872c09mnlvylslv4hqv6c9cz36l76q74rr99jvis1dg69gf";
};
nativeBuildInputs = [ autoreconfHook pkg-config ];
buildInputs = [ ncurses libconfuse ] ++ lib.optional stdenv.isLinux libnl;
preConfigure = ''
# Must be an absolute path
export PKG_CONFIG="$(command -v "$PKG_CONFIG")"
'';
meta = with lib; {
description = "Network bandwidth monitor";
homepage = "https://github.com/tgraf/bmon";
# Licensed unter BSD and MIT
# - https://github.com/tgraf/bmon/blob/master/LICENSE.BSD
# - https://github.com/tgraf/bmon/blob/master/LICENSE.MIT
license = licenses.bsd2;
platforms = platforms.unix;
maintainers = with maintainers; [ bjornfor pSub ];
};
}

View file

@ -0,0 +1,31 @@
{fetchurl, lib, stdenv, flex, db}:
stdenv.mkDerivation rec {
pname = "bogofilter";
version = "1.2.4";
src = fetchurl {
url = "mirror://sourceforge/bogofilter/bogofilter-${version}.tar.bz2";
sha256 = "1d56n2m9inm8gnzm88aa27xl2a7sp7aff3484vmflpqkinjqf0p1";
};
# FIXME: We would need `pax' as a "propagated build input" (for use
# by the `bf_tar' script) but we don't have it currently.
buildInputs = [ flex db ];
doCheck = false; # needs "y" tool
meta = {
homepage = "http://bogofilter.sourceforge.net/";
longDescription = ''
Bogofilter is a mail filter that classifies mail as spam or ham
(non-spam) by a statistical analysis of the message's header and
content (body). The program is able to learn from the user's
classifications and corrections. It is based on a Bayesian
filter.
'';
license = lib.licenses.gpl2;
platforms = lib.platforms.linux;
};
}

View file

@ -0,0 +1,25 @@
{ lib
, buildGoModule
, fetchFromGitHub
}:
buildGoModule rec {
pname = "boltbrowser";
version = "2.1";
src = fetchFromGitHub {
owner = "br0xen";
repo = pname;
rev = version;
sha256 = "sha256-Obfhxe0AI5m4UTvs28PMOrBxWuwMW7FY4DMI80Ez0Ws=";
};
vendorSha256 = "sha256-G47vTP2EBM0fa1lCma6gQGMlkb6xe620hYwZYcSpSPQ=";
meta = with lib; {
description = "CLI Browser for BoltDB files";
homepage = "https://github.com/br0xen/boltbrowser";
license = with licenses; [ gpl3Only ];
maintainers = with maintainers; [ fab ];
};
}

View file

@ -0,0 +1,22 @@
{ lib, rustPlatform, fetchCrate }:
rustPlatform.buildRustPackage rec {
pname = "bottom-rs";
version = "1.2.0";
src = fetchCrate {
inherit version;
crateName = "bottomify";
sha256 = "sha256-R1zj+TFXoolonIFa1zJDd7CdrORfzAPlxJoJVYe9xdc=";
};
cargoSha256 = "sha256-7xD65ookkK09XwCBH6fXqmWRYlmvpwAocojBg/dHzUI=";
meta = with lib; {
description = "Fantastic (maybe) CLI for translating between bottom and human-readable text";
homepage = "https://github.com/bottom-software-foundation/bottom-rs";
license = licenses.mit;
maintainers = with maintainers; [ winter ];
mainProgram = "bottomify";
};
}

View file

@ -0,0 +1,95 @@
{ lib, stdenv, fetchurl, pkg-config, python3, bluez
, tcl, acl, kmod, coreutils, shadow, util-linux, udev
, alsaSupport ? stdenv.isLinux, alsa-lib
, systemdSupport ? stdenv.isLinux, systemd
}:
stdenv.mkDerivation rec {
pname = "brltty";
version = "6.3";
src = fetchurl {
url = "https://brltty.app/archive/${pname}-${version}.tar.gz";
sha256 = "14psxwlvgyi2fj1zh8rfykyjcjaya8xa7yg574bxd8y8n49n8hvb";
};
nativeBuildInputs = [ pkg-config python3.pkgs.cython tcl ];
buildInputs = [ bluez ]
++ lib.optional alsaSupport alsa-lib
++ lib.optional systemdSupport systemd;
meta = {
description = "Access software for a blind person using a braille display";
longDescription = ''
BRLTTY is a background process (daemon) which provides access to the Linux/Unix
console (when in text mode) for a blind person using a refreshable braille display.
It drives the braille display, and provides complete screen review functionality.
Some speech capability has also been incorporated.
'';
homepage = "https://brltty.app";
license = lib.licenses.gpl2Plus;
maintainers = [ lib.maintainers.bramd ];
platforms = lib.platforms.all;
};
makeFlags = [
"PYTHON_PREFIX=$(out)"
"SYSTEMD_UNITS_DIRECTORY=$(out)/lib/systemd/system"
"SYSTEMD_USERS_DIRECTORY=$(out)/lib/sysusers.d"
"SYSTEMD_FILES_DIRECTORY=$(out)/lib/tmpfiles.d"
"UDEV_LIBRARY_DIRECTORY=$(out)/lib/udev"
"UDEV_RULES_TYPE=all"
"POLKIT_POLICY_DIR=$(out)/share/polkit-1/actions"
"POLKIT_RULE_DIR=$(out)/share/polkit-1/rules.d"
];
configureFlags = [
"--with-writable-directory=/run/brltty"
"--with-updatable-directory=/var/lib/brltty"
"--with-api-socket-path=/var/lib/BrlAPI"
];
installFlags = [ "install-systemd" "install-udev" "install-polkit" ];
preConfigure = ''
substituteInPlace configure --replace /sbin/ldconfig ldconfig
# Some script needs a working tclsh shebang
patchShebangs .
# Skip impure operations
substituteInPlace Programs/Makefile.in \
--replace install-writable-directory "" \
--replace install-apisoc-directory "" \
--replace install-api-key ""
'';
postInstall = ''
# Rewrite absolute paths
substituteInPlace $out/bin/brltty-mkuser \
--replace '/sbin/nologin' '${shadow}/bin/nologin'
(
cd $out/lib
substituteInPlace systemd/system/brltty@.service \
--replace '/usr/lib' "$out/lib" \
--replace '/sbin/modprobe' '${kmod}/bin/modprobe'
# Ensure the systemd-wrapper script uses the correct path to the brltty binary
sed "/^Environment=\"BRLTTY_EXECUTABLE_ARGUMENTS.*/a Environment=\"BRLTTY_EXECUTABLE_PATH=$out/bin/brltty\"" -i systemd/system/brltty@.service
substituteInPlace systemd/system/brltty-device@.service \
--replace '/usr/bin/true' '${coreutils}/bin/true'
substituteInPlace udev/rules.d/90-brltty-uinput.rules \
--replace '/usr/bin/setfacl' '${acl}/bin/setfacl'
substituteInPlace tmpfiles.d/brltty.conf \
--replace "$out/etc" '/etc'
# Remove unused commands from udev rules
sed '/initctl/d' -i udev/rules.d/90-brltty-device.rules
# Remove pulse-access group from systemd unit and sysusers
substituteInPlace systemd/system/brltty@.service \
--replace 'SupplementaryGroups=pulse-access' '# SupplementaryGroups=pulse-access'
substituteInPlace sysusers.d/brltty.conf \
--replace 'm brltty pulse-access' '# m brltty pulse-access'
)
substituteInPlace $out/libexec/brltty/systemd-wrapper \
--replace 'logger' "${util-linux}/bin/logger" \
--replace 'udevadm' "${udev}/bin/udevadm"
'';
}

View file

@ -0,0 +1,36 @@
{ lib, python3Packages, fetchFromGitHub }:
python3Packages.buildPythonApplication rec {
pname = "broadlink-cli";
version = "0.18.2";
# the tools are available as part of the source distribution from GH but
# not pypi, so we have to fetch them here.
src = fetchFromGitHub {
owner = "mjg59";
repo = "python-broadlink";
rev = "refs/tags/${version}";
sha256 = "sha256-JX+Io5EP1OgtP7T+UQtkfCPWE1rd3MTrCYRhU9C0+0c=";
};
format = "other";
propagatedBuildInputs = with python3Packages; [
broadlink
];
installPhase = ''
runHook preInstall
install -Dm555 -t $out/bin cli/broadlink_{cli,discovery}
install -Dm444 -t $out/share/doc/broadlink cli/README.md
runHook postInstall
'';
meta = with lib; {
description = "Tools for interfacing with Broadlink RM2/3 (Pro) remote controls, A1 sensor platforms and SP2/3 smartplugs";
maintainers = with maintainers; [ peterhoeg ];
inherit (python3Packages.broadlink.meta) homepage license;
};
}

View file

@ -0,0 +1,88 @@
{ lib
, stdenv
, rustPlatform
, fetchCrate
, installShellFiles
, makeWrapper
, pkg-config
, libgit2
, oniguruma
, libiconv
, Security
, libxcb
, zlib
}:
rustPlatform.buildRustPackage rec {
pname = "broot";
version = "1.12.0";
src = fetchCrate {
inherit pname version;
sha256 = "sha256-WCnTmb9EEFmA4nEBD3UzV3JfyHtJyJibMd85madoyto=";
};
cargoHash = "sha256-FH+swtzO65fKWFLG3rDOysmbsVSjGFGeMiYtNQU62ww=";
nativeBuildInputs = [
installShellFiles
makeWrapper
pkg-config
];
buildInputs = [ libgit2 oniguruma libxcb ] ++ lib.optionals stdenv.isDarwin [
libiconv
Security
zlib
];
RUSTONIG_SYSTEM_LIBONIG = true;
postPatch = ''
# Fill the version stub in the man page. We can't fill the date
# stub reproducibly.
substitute man/page man/broot.1 \
--replace "#version" "${version}"
'';
postInstall = ''
# Do not nag users about installing shell integration, since
# it is impure.
wrapProgram $out/bin/broot \
--set BR_INSTALL no
# Install shell function for bash.
$out/bin/broot --print-shell-function bash > br.bash
install -Dm0444 -t $out/etc/profile.d br.bash
# Install shell function for zsh.
$out/bin/broot --print-shell-function zsh > br.zsh
install -Dm0444 br.zsh $out/share/zsh/site-functions/br
# Install shell function for fish
$out/bin/broot --print-shell-function fish > br.fish
install -Dm0444 -t $out/share/fish/vendor_functions.d br.fish
# install shell completion files
OUT_DIR=$releaseDir/build/broot-*/out
installShellCompletion --bash $OUT_DIR/{br,broot}.bash
installShellCompletion --fish $OUT_DIR/{br,broot}.fish
installShellCompletion --zsh $OUT_DIR/{_br,_broot}
installManPage man/broot.1
'';
doInstallCheck = true;
installCheckPhase = ''
$out/bin/broot --version | grep "${version}"
'';
meta = with lib; {
description = "An interactive tree view, a fuzzy search, a balanced BFS descent and customizable commands";
homepage = "https://dystroy.org/broot/";
changelog = "https://github.com/Canop/broot/releases/tag/v${version}";
maintainers = with maintainers; [ dywedir ];
license = with licenses; [ mit ];
};
}

View file

@ -0,0 +1,36 @@
{ lib, fetchFromGitHub, glibcLocales, python }:
python.pkgs.buildPythonApplication rec {
version = "1.3.0";
pname = "brotab";
src = fetchFromGitHub {
owner = "balta2ar";
repo = pname;
rev = version;
sha256 = "1ja9qaf3rxm0chgzs5mpw973h7ibb454k9mbfbb2gl12gr9zllyw";
};
propagatedBuildInputs = with python.pkgs; [
requests
flask
psutil
setuptools
];
checkBuildInputs = with python.pkgs; [
pytest
];
# test_integration.py requires Chrome browser session
checkPhase = ''
${python.interpreter} -m unittest brotab/tests/test_{brotab,utils}.py
'';
meta = with lib; {
homepage = "https://github.com/balta2ar/brotab";
description = "Control your browser's tabs from the command line";
license = licenses.mit;
maintainers = with maintainers; [ doronbehar ];
};
}

View file

@ -0,0 +1,45 @@
{ lib
, stdenv
, fetchFromGitHub
, makeWrapper
, git
, bc
, bspwm
}:
stdenv.mkDerivation rec {
pname = "bsp-layout";
version = "unstable-2021-05-10";
src = fetchFromGitHub {
owner = "phenax";
repo = pname;
rev = "726b850b79eabdc6f4d236cff52e434848cb55e3";
sha256 = "1wqlzbz7l9vz37gin2zckrnxkkabnd7x5mi9pb0x96w4yhld5mx6";
};
nativeBuildInputs = [ makeWrapper git bc ];
buildInputs = [ bspwm ];
makeFlags = [ "PREFIX=$(out)" ];
postInstall = ''
substituteInPlace $out/lib/bsp-layout/layout.sh --replace 'bc ' '${bc}/bin/bc '
for layout in tall rtall wide rwide
do
substituteInPlace "$out/lib/bsp-layout/layouts/$layout.sh" --replace 'bc ' '${bc}/bin/bc '
done
'';
meta = with lib; {
description = "Manage layouts in bspwm";
longDescription = ''
bsp-layout is a dynamic layout manager for bspwm, written in bash.
It provides layout options to fit most workflows.
'';
homepage = "https://github.com/phenax/bsp-layout";
license = licenses.mit;
maintainers = with maintainers; [ devins2518 totoroot ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,83 @@
{stdenv, lib, fetchurl, dub, ncurses, ldc, zlib, removeReferencesTo }:
let
_d_ae_ver = "0.0.3141";
_d_btrfs_ver = "0.0.12";
_d_ncurses_ver = "0.0.149";
_d_emsi_containers_ver = "0.9.0";
in
stdenv.mkDerivation rec {
pname = "btdu";
version = "0.4.0";
srcs = [
(fetchurl {
url = "https://github.com/CyberShadow/${pname}/archive/v${version}.tar.gz";
sha256 = "1377d2ee14367deed6f0b17407a0de437450a4f381819265d98c38fbc05f792f";
})
(fetchurl {
url = "https://github.com/CyberShadow/ae/archive/v${_d_ae_ver}.tar.gz";
sha256 = "5ae60c637050c11733da8a67735a43e16d6082d18b74ce64b04e24e42d8f5f5f";
})
(fetchurl {
url = "https://github.com/CyberShadow/d-btrfs/archive/v${_d_btrfs_ver}.tar.gz";
sha256 = "cf2b1fa3e94a0aa239d465adbac239514838835283521d632f571948aa517f92";
})
(fetchurl {
url = "https://github.com/D-Programming-Deimos/ncurses/archive/v${_d_ncurses_ver}.tar.gz";
sha256 = "2c8497f5dd93f9d3a05ca7ed57c4fcaee1e988fd25a24de106917ddf72f34646";
})
(fetchurl {
url = "https://github.com/dlang-community/containers/archive/v${_d_emsi_containers_ver}.tar.gz";
sha256 = "5e256b84bbdbd2bd625cba0472ea27a1fde6d673d37a85fe971a20d52874acaa";
})
];
sourceRoot = ".";
postUnpack = ''
mv ae-${_d_ae_ver} "ae"
'';
nativeBuildInputs = [ dub ldc ];
buildInputs = [ ncurses zlib ];
configurePhase = ''
runHook preConfigure
mkdir home
HOME="home" dub add-local ae ${_d_ae_ver}
HOME="home" dub add-local d-btrfs-${_d_btrfs_ver} ${_d_btrfs_ver}
HOME="home" dub add-local ncurses-${_d_ncurses_ver} ${_d_ncurses_ver}
HOME="home" dub add-local containers-${_d_emsi_containers_ver} ${_d_emsi_containers_ver}
runHook postConfigure
'';
buildPhase = ''
runHook preBuild
cd ${pname}-${version}
HOME="../home" dub --skip-registry=all build -b release
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp btdu $out/bin/
runHook postInstall
'';
postInstall = ''
${removeReferencesTo}/bin/remove-references-to -t ${ldc} $out/bin/btdu
'';
passthru.updateScript = ./update.py;
meta = with lib; {
description = "Sampling disk usage profiler for btrfs";
homepage = "https://github.com/CyberShadow/btdu";
license = licenses.gpl2Only;
platforms = platforms.linux;
maintainers = with maintainers; [ atila ];
};
}

82
pkgs/tools/misc/btdu/update.py Executable file
View file

@ -0,0 +1,82 @@
#!/usr/bin/env nix-shell
#!nix-shell -i python -p python39Packages.requests
import requests
import subprocess
pkgbuild = requests.get('https://aur.archlinux.org/cgit/aur.git/plain/PKGBUILD?h=btdu').text
def grabDepVersions(depDict, pkgbuild=pkgbuild):
for line in pkgbuild.split('\n'):
if depDict["string"] in line:
start = len(depDict["string"]) + 1
depDict["version"] = line[start:]
break
def grabDepHashes(key,pkgbuild=pkgbuild):
start = pkgbuild.find(key) + len(key)
end = start+64
hashes = []
for i in range(5):
hashes.append(pkgbuild[start:end])
start = pkgbuild.find("'",end+1) + 1
end = start+64
return hashes
def findLine(key,derivation):
count = 0
lines = []
for line in derivation:
if key in line:
lines.append(count)
count += 1
return lines
def updateVersions(btdu,ae,btrfs,ncurses,containers,derivation):
key = "let"
line = findLine(key,derivation)[0] + 1
derivation[line+0] = f' _d_ae_ver = "{ae["version"]}";\n'
derivation[line+1] = f' _d_btrfs_ver = "{btrfs["version"]}";\n'
derivation[line+2] = f' _d_ncurses_ver = "{ncurses["version"]}";\n'
derivation[line+3] = f' _d_emsi_containers_ver = "{containers["version"]}";\n'
key = "version = "
line = findLine(key,derivation)[0]
derivation[line] = f' version = "{btdu["version"]}";\n'
return derivation
def updateHashes(btdu,ae,btrfs,ncurses,containers,derivation):
key = "sha256 = "
hashLines = findLine(key,derivation)
for i in range(len(hashes)):
derivation[hashLines[i]] = f' sha256 = "{hashes[i]}";\n'
return derivation
if __name__ == "__main__":
btdu = {"string": "pkgver"}
ae = {"string": "_d_ae_ver"}
btrfs = {"string": "_d_btrfs_ver"}
ncurses = {"string": "_d_ncurses_ver"}
containers = {"string": "_d_emsi_containers_ver"}
grabDepVersions(btdu)
grabDepVersions(ae)
grabDepVersions(btrfs)
grabDepVersions(ncurses)
grabDepVersions(containers)
hashes = grabDepHashes("sha256sums=('")
nixpkgs = subprocess.check_output(["git", "rev-parse", "--show-toplevel"]).decode("utf-8").strip('\n')
btduFolder = "/pkgs/tools/misc/btdu/"
with open(nixpkgs + btduFolder + "default.nix", 'r') as arq:
derivation = arq.readlines()
derivation = updateVersions(btdu,ae,btrfs,ncurses,containers,derivation)
derivation = updateHashes(btdu,ae,btrfs,ncurses,containers,derivation)
with open(nixpkgs + btduFolder + "default.nix", 'w') as arq:
arq.writelines(derivation)

View file

@ -0,0 +1,18 @@
{ lib, stdenv, fetchurl }:
stdenv.mkDerivation rec {
pname = "buildtorrent";
version = "0.8";
src = fetchurl {
url = "https://mathr.co.uk/blog/code/${pname}-${version}.tar.gz";
sha256 = "sha256-6OJ2R72ziHOsVw1GwalompKwG7Z/WQidHN0IeE9wUtA=";
};
meta = with lib; {
description = "A simple commandline torrent creator";
homepage = "https://mathr.co.uk/blog/torrent.html";
license = licenses.gpl3Plus;
platforms = platforms.all;
};
}

View file

@ -0,0 +1,27 @@
{ buildGoModule, fetchFromGitHub, lib }:
buildGoModule rec {
pname = "bunnyfetch";
version = "0.2.0";
src = fetchFromGitHub {
owner = "Rosettea";
repo = "bunnyfetch";
rev = "v${version}";
sha256 = "sha256-6MnjCXc9/8twdf8PHKsVJY1yWYwUf5R01vtQFJbyy7M=";
};
vendorSha256 = "sha256-w+O1dU8t7uNvdlFnYhCdJCDixpWWZAnj9GrtsCbu9SM=";
# No upstream tests
doCheck = false;
meta = with lib; {
description = "Tiny system info fetch utility";
homepage = "https://github.com/Rosettea/bunnyfetch";
license = licenses.mit;
maintainers = with maintainers; [ devins2518 ];
platforms = platforms.linux;
mainProgram = "bunnyfetch";
};
}

View file

@ -0,0 +1,75 @@
{ lib, stdenv, fetchurl, makeWrapper
, ncurses, python3, perl, textual-window-manager
, gettext, vim, bc, screen }:
let
pythonEnv = python3.withPackages (ps: with ps; [ snack ]);
in
stdenv.mkDerivation rec {
version = "5.133";
pname = "byobu";
src = fetchurl {
url = "https://launchpad.net/byobu/trunk/${version}/+download/byobu_${version}.orig.tar.gz";
sha256 = "0qvmmdnvwqbgbhn5c8asmrmjhclcl029py2d2zvmd7h5ij7s93jd";
};
doCheck = true;
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ perl gettext ];
propagatedBuildInputs = [ textual-window-manager screen ];
postPatch = ''
substituteInPlace usr/bin/byobu-export.in \
--replace "gettext" "${gettext}/bin/gettext"
substituteInPlace usr/lib/byobu/menu \
--replace "gettext" "${gettext}/bin/gettext"
'';
postInstall = ''
# Byobu does not compile its po files for some reason
for po in po/*.po; do
lang=''${po#po/}
lang=''${lang%.po}
# Path where byobu looks for translations as observed in the source code and strace
mkdir -p $out/share/byobu/po/$lang/LC_MESSAGES/
msgfmt $po -o $out/share/byobu/po/$lang/LC_MESSAGES/byobu.mo
done
# Override the symlinks otherwise they mess with the wrapping
cp --remove-destination $out/bin/byobu $out/bin/byobu-screen
cp --remove-destination $out/bin/byobu $out/bin/byobu-tmux
for i in $out/bin/byobu*; do
# We don't use the usual ".$package-wrapped" because arg0 within the shebang scripts
# points to the filename and byobu matches against this to know which backend
# to start with
file=".$(basename $i)"
mv $i $out/bin/$file
makeWrapper "$out/bin/$file" "$out/bin/$(basename $i)" --argv0 $(basename $i) \
--set BYOBU_PATH ${lib.escapeShellArg (lib.makeBinPath [ vim bc ])} \
--set BYOBU_PYTHON "${pythonEnv}/bin/python"
done
'';
meta = with lib; {
homepage = "https://launchpad.net/byobu/";
description = "Text-based window manager and terminal multiplexer";
longDescription =
''Byobu is a GPLv3 open source text-based window manager and terminal multiplexer.
It was originally designed to provide elegant enhancements to the otherwise functional,
plain, practical GNU Screen, for the Ubuntu server distribution.
Byobu now includes an enhanced profiles, convenient keybindings,
configuration utilities, and toggle-able system status notifications for both
the GNU Screen window manager and the more modern Tmux terminal multiplexer,
and works on most Linux, BSD, and Mac distributions.
'';
license = licenses.gpl3;
platforms = platforms.unix;
maintainers = with maintainers; [ qknight berbiche ];
};
}

View file

@ -0,0 +1,30 @@
{ stdenv, fetchFromGitHub, lib }:
stdenv.mkDerivation rec {
pname = "calamares-nixos-extensions";
version = "0.3.8";
src = fetchFromGitHub {
owner = "NixOS";
repo = "calamares-nixos-extensions";
rev = version;
sha256 = "MtqAOwlY5euVNAGRl2pRkbg/OolJPNOSQcR4DS5gFz4=";
};
installPhase = ''
runHook preInstall
mkdir -p $out/{lib,share}/calamares
cp -r modules $out/lib/calamares/
cp -r config/* $out/share/calamares/
cp -r branding $out/share/calamares/
runHook postInstall
'';
meta = with lib; {
description = "Calamares modules for NixOS";
homepage = "https://github.com/NixOS/calamares-nixos-extensions";
license = with licenses; [ gpl3Plus bsd2 cc-by-40 cc-by-sa-40 cc0 ];
maintainers = with maintainers; [ vlinkz ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,96 @@
{ lib, fetchurl, boost, cmake, extra-cmake-modules, kparts, kpmcore, kirigami2
, kservice, libatasmart, libxcb, libyamlcpp, libpwquality, parted, polkit-qt, python
, qtbase, qtquickcontrols, qtsvg, qttools, qtwebengine, util-linux, tzdata
, ckbcomp, xkeyboard_config, mkDerivation
, nixos-extensions ? false
}:
mkDerivation rec {
pname = "calamares";
version = "3.2.57";
# release including submodule
src = fetchurl {
url = "https://github.com/calamares/calamares/releases/download/v${version}/${pname}-${version}.tar.gz";
sha256 = "ef7f564ec2cd8baaf94a44982ce1db88c1192696617f21538d0b8472a63b4c2b";
};
patches = lib.optionals nixos-extensions [
# Modifies the users module to only set passwords of user and root
# as the users will have already been created in the configuration.nix file
./userjob.patch
# Makes calamares search /run/current-system/sw/share/calamares/ for extra configuration files
# as by default it only searches /usr/share/calamares/ and /nix/store/<hash>-calamares-<version>/share/calamares/
# but calamares-nixos-extensions is not in either of these locations
./nixos-extensions-paths.patch
# Uses pkexec within modules in order to run calamares without root permissions as a whole
# Also fixes storage check in the welcome module
./nonroot.patch
# Adds unfree qml to packagechooserq
./unfreeq.patch
# Modifies finished module to add some NixOS resources
# Modifies packagechooser module to change the UI
./uimod.patch
# Remove options for unsupported partition types
./partitions.patch
# Fix setting the kayboard layout on GNOME wayland
# By default the module uses the setxkbmap, which will not change the keyboard
./waylandkbd.patch
];
nativeBuildInputs = [ cmake extra-cmake-modules ];
buildInputs = [
boost kparts.dev kpmcore.out kservice.dev kirigami2
libatasmart libxcb libyamlcpp libpwquality parted polkit-qt python
qtbase qtquickcontrols qtsvg qttools qtwebengine.dev util-linux
];
cmakeFlags = [
"-DPYTHON_LIBRARY=${python}/lib/lib${python.libPrefix}.so"
"-DPYTHON_INCLUDE_DIR=${python}/include/${python.libPrefix}"
"-DCMAKE_VERBOSE_MAKEFILE=True"
"-DCMAKE_BUILD_TYPE=Release"
"-DWITH_PYTHONQT:BOOL=ON"
];
POLKITQT-1_POLICY_FILES_INSTALL_DIR = "$(out)/share/polkit-1/actions";
postPatch = ''
# Run calamares without root. Other patches make it functional as a normal user
sed -e "s,pkexec calamares,calamares," \
-i calamares.desktop
sed -e "s,X-AppStream-Ignore=true,&\nStartupWMClass=calamares," \
-i calamares.desktop
# Fix desktop reference with wayland
mv calamares.desktop io.calamares.calamares.desktop
sed -e "s,calamares.desktop,io.calamares.calamares.desktop," \
-i CMakeLists.txt
sed -e "s,/usr/bin/calamares,$out/bin/calamares," \
-i com.github.calamares.calamares.policy
sed -e 's,/usr/share/zoneinfo,${tzdata}/share/zoneinfo,' \
-i src/modules/locale/SetTimezoneJob.cpp \
-i src/libcalamares/locale/TimeZone.cpp
sed -e 's,/usr/share/X11/xkb/rules/base.lst,${xkeyboard_config}/share/X11/xkb/rules/base.lst,' \
-i src/modules/keyboard/keyboardwidget/keyboardglobal.cpp
sed -e 's,"ckbcomp","${ckbcomp}/bin/ckbcomp",' \
-i src/modules/keyboard/keyboardwidget/keyboardpreview.cpp
sed "s,\''${POLKITQT-1_POLICY_FILES_INSTALL_DIR},''${out}/share/polkit-1/actions," \
-i CMakeLists.txt
'';
meta = with lib; {
description = "Distribution-independent installer framework";
homepage = "https://calamares.io/";
license = with licenses; [ gpl3Plus bsd2 cc0 ];
maintainers = with maintainers; [ manveru vlinkz ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,46 @@
diff --git a/src/calamares/main.cpp b/src/calamares/main.cpp
index de709156f..a0b6c5faf 100644
--- a/src/calamares/main.cpp
+++ b/src/calamares/main.cpp
@@ -131,6 +132,8 @@ main( int argc, char* argv[] )
// TODO: umount anything in /tmp/calamares-... as an emergency save function
#endif
+ CalamaresUtils::setNixosDirs();
+
bool is_debug = handle_args( a );
#ifdef WITH_KF5DBus
diff --git a/src/libcalamares/utils/Dirs.cpp b/src/libcalamares/utils/Dirs.cpp
index f333d6e64..6118fb412 100644
--- a/src/libcalamares/utils/Dirs.cpp
+++ b/src/libcalamares/utils/Dirs.cpp
@@ -115,6 +116,14 @@ setXdgDirs()
s_haveExtraDirs = !( s_extraConfigDirs.isEmpty() && s_extraDataDirs.isEmpty() );
}
+void
+setNixosDirs()
+{
+ s_extraConfigDirs << "/run/current-system/sw/share/calamares/";
+ s_extraDataDirs << "/run/current-system/sw/share/calamares/";
+ s_haveExtraDirs = !( s_extraConfigDirs.isEmpty() && s_extraDataDirs.isEmpty() );
+}
+
QStringList
extraConfigDirs()
{
diff --git a/src/libcalamares/utils/Dirs.h b/src/libcalamares/utils/Dirs.h
index 445cbe1f1..da869d446 100644
--- a/src/libcalamares/utils/Dirs.h
+++ b/src/libcalamares/utils/Dirs.h
@@ -50,6 +50,9 @@ DLLEXPORT bool isAppDataDirOverridden();
/** @brief Setup extra config and data dirs from the XDG variables.
*/
DLLEXPORT void setXdgDirs();
+/** @brief Setup extra config and data dirs fir NixOS.
+ */
+DLLEXPORT void setNixosDirs();
/** @brief Are any extra directories configured? */
DLLEXPORT bool haveExtraDirs();
/** @brief XDG_CONFIG_DIRS, each guaranteed to end with / */

View file

@ -0,0 +1,105 @@
diff --git a/src/libcalamares/utils/Runner.cpp b/src/libcalamares/utils/Runner.cpp
index c7146c2d7..e165d9a8f 100644
--- a/src/libcalamares/utils/Runner.cpp
+++ b/src/libcalamares/utils/Runner.cpp
@@ -140,13 +140,13 @@ Calamares::Utils::Runner::run()
}
if ( m_location == RunLocation::RunInTarget )
{
- process.setProgram( "chroot" );
- process.setArguments( QStringList { workingDirectory.absolutePath() } << m_command );
+ process.setProgram( "pkexec" );
+ process.setArguments( QStringList { "chroot" } + QStringList { workingDirectory.absolutePath() } << m_command );
}
else
{
- process.setProgram( "env" );
- process.setArguments( m_command );
+ process.setProgram( "pkexec" );
+ process.setArguments( QStringList { "env" } + m_command );
}
if ( m_output )
diff --git a/src/modules/mount/main.py b/src/modules/mount/main.py
index a3318d1a0..5fbe202fd 100644
--- a/src/modules/mount/main.py
+++ b/src/modules/mount/main.py
@@ -152,7 +152,8 @@ def mount_partition(root_mount_point, partition, partitions):
# Ensure that the created directory has the correct SELinux context on
# SELinux-enabled systems.
- os.makedirs(mount_point, exist_ok=True)
+ subprocess.check_call(["pkexec", "mkdir", "-p", mount_point])
+
try:
subprocess.call(['chcon', '--reference=' + raw_mount_point, mount_point])
except FileNotFoundError as e:
@@ -193,13 +194,13 @@ def mount_partition(root_mount_point, partition, partitions):
for s in btrfs_subvolumes:
if not s["subvolume"]:
continue
- os.makedirs(root_mount_point + os.path.dirname(s["subvolume"]), exist_ok=True)
- subprocess.check_call(["btrfs", "subvolume", "create",
+ subprocess.check_call(["pkexec", "mkdir", "-p", root_mount_point + os.path.dirname(s["subvolume"])])
+ subprocess.check_call(["pkexec", "btrfs", "subvolume", "create",
root_mount_point + s["subvolume"]])
if s["mountPoint"] == "/":
# insert the root subvolume into global storage
libcalamares.globalstorage.insert("btrfsRootSubvolume", s["subvolume"])
- subprocess.check_call(["umount", "-v", root_mount_point])
+ subprocess.check_call(["pkexec", "umount", "-v", root_mount_point])
device = partition["device"]
diff --git a/src/modules/welcome/checker/GeneralRequirements.cpp b/src/modules/welcome/checker/GeneralRequirements.cpp
index ca7219ca4..6ac682ba4 100644
--- a/src/modules/welcome/checker/GeneralRequirements.cpp
+++ b/src/modules/welcome/checker/GeneralRequirements.cpp
@@ -371,10 +371,34 @@ GeneralRequirements::checkEnoughStorage( qint64 requiredSpace )
cWarning() << "GeneralRequirements is configured without libparted.";
return false;
#else
- return check_big_enough( requiredSpace );
+ return big_enough( requiredSpace );
#endif
}
+bool
+GeneralRequirements::big_enough( qint64 requiredSpace )
+{
+ FILE *fpipe;
+ char command[128];
+ snprintf(command, sizeof(command), "lsblk --bytes -no SIZE,TYPE | grep disk | awk '$1 > %llu {print $1}'", requiredSpace);
+ char c = 0;
+
+ if (0 == (fpipe = (FILE*)popen(command, "r")))
+ {
+ cWarning() << "Failed to check storage size.";
+ return false;
+ }
+
+ while (fread(&c, sizeof c, 1, fpipe))
+ {
+ pclose(fpipe);
+ return true;
+ }
+
+ pclose(fpipe);
+
+ return false;
+}
bool
GeneralRequirements::checkEnoughRam( qint64 requiredRam )
diff --git a/src/modules/welcome/checker/GeneralRequirements.h b/src/modules/welcome/checker/GeneralRequirements.h
index b6646da11..ea27324fa 100644
--- a/src/modules/welcome/checker/GeneralRequirements.h
+++ b/src/modules/welcome/checker/GeneralRequirements.h
@@ -36,6 +36,7 @@ private:
bool checkHasPower();
bool checkHasInternet();
bool checkIsRoot();
+ bool big_enough( qint64 requiredSpace );
qreal m_requiredStorageGiB;
qreal m_requiredRamGiB;

View file

@ -0,0 +1,28 @@
diff --git a/src/modules/partition/gui/CreatePartitionDialog.cpp b/src/modules/partition/gui/CreatePartitionDialog.cpp
index c5b17c69e..353b6f964 100644
--- a/src/modules/partition/gui/CreatePartitionDialog.cpp
+++ b/src/modules/partition/gui/CreatePartitionDialog.cpp
@@ -107,7 +107,8 @@ CreatePartitionDialog::CreatePartitionDialog( Device* device,
{
// We need to ensure zfs is added to the list if the zfs module is enabled
if ( ( fs->type() == FileSystem::Type::Zfs && Calamares::Settings::instance()->isModuleEnabled( "zfs" ) )
- || ( fs->supportCreate() != FileSystem::cmdSupportNone && fs->type() != FileSystem::Extended ) )
+ || ( fs->supportCreate() != FileSystem::cmdSupportNone && fs->type() != FileSystem::Extended
+ && fs->type() != FileSystem::Luks && fs->type() != FileSystem::Luks2 && fs->type() != FileSystem::Minix ) )
{
fsNames << userVisibleFS( fs ); // This is put into the combobox
if ( fs->type() == defaultFSType )
diff --git a/src/modules/partition/gui/EditExistingPartitionDialog.cpp b/src/modules/partition/gui/EditExistingPartitionDialog.cpp
index 0bc35cabe..3cf8a7fa2 100644
--- a/src/modules/partition/gui/EditExistingPartitionDialog.cpp
+++ b/src/modules/partition/gui/EditExistingPartitionDialog.cpp
@@ -95,7 +95,8 @@ EditExistingPartitionDialog::EditExistingPartitionDialog( Device* device,
{
// We need to ensure zfs is added to the list if the zfs module is enabled
if ( ( fs->type() == FileSystem::Type::Zfs && Calamares::Settings::instance()->isModuleEnabled( "zfs" ) )
- || ( fs->supportCreate() != FileSystem::cmdSupportNone && fs->type() != FileSystem::Extended ) )
+ || ( fs->supportCreate() != FileSystem::cmdSupportNone && fs->type() != FileSystem::Extended
+ && fs->type() != FileSystem::Luks && fs->type() != FileSystem::Luks2 && fs->type() != FileSystem::Minix) )
{
fsNames << userVisibleFS( fs ); // For the combo box
}

View file

@ -0,0 +1,85 @@
diff --git a/src/modules/finished/FinishedPage.cpp b/src/modules/finished/FinishedPage.cpp
index 6c5f9ad16..24d75e07b 100644
--- a/src/modules/finished/FinishedPage.cpp
+++ b/src/modules/finished/FinishedPage.cpp
@@ -71,7 +71,10 @@ FinishedPage::retranslate()
{
ui->mainText->setText( tr( "<h1>All done.</h1><br/>"
"%1 has been set up on your computer.<br/>"
- "You may now start using your new system." )
+ "You may now start using your new system.<br/>"
+ "You can change every setting later except the bootloader.<br/>"
+ "Check the <a href=\"https://nixos.org/manual/nixos/stable/\">manual</a> for instructions on how to install software, upgrade the system or enable services.<br/>"
+ "You can find ways to get in touch with the <a href=\"https://nixos.org/community/\">community on the website!</a>")
.arg( branding->versionedName() ) );
ui->restartCheckBox->setToolTip( tr( "<html><head/><body>"
"<p>When this box is checked, your system will "
@@ -84,7 +87,10 @@ FinishedPage::retranslate()
ui->mainText->setText( tr( "<h1>All done.</h1><br/>"
"%1 has been installed on your computer.<br/>"
"You may now restart into your new system, or continue "
- "using the %2 Live environment." )
+ "using the %2 Live environment.<br/>"
+ "You can change every setting later except the bootloader.<br/>"
+ "Check the <a href=\"https://nixos.org/manual/nixos/stable/\">manual</a> for instructions on how to install software, upgrade the system or enable services.<br/>"
+ "You can find ways to get in touch with the <a href=\"https://nixos.org/community/\">community on the website!</a>")
.arg( branding->versionedName(), branding->productName() ) );
ui->restartCheckBox->setToolTip( tr( "<html><head/><body>"
"<p>When this box is checked, your system will "
diff --git a/src/modules/packagechooser/PackageChooserPage.cpp b/src/modules/packagechooser/PackageChooserPage.cpp
index 721329c1b..164b9945e 100644
--- a/src/modules/packagechooser/PackageChooserPage.cpp
+++ b/src/modules/packagechooser/PackageChooserPage.cpp
@@ -52,6 +52,7 @@ PackageChooserPage::currentChanged( const QModelIndex& index )
if ( !index.isValid() || !ui->products->selectionModel()->hasSelection() )
{
ui->productName->setText( m_introduction.name.get() );
+ ui->productName->setStyleSheet("font-weight: bold");
ui->productScreenshot->setPixmap( m_introduction.screenshot );
ui->productDescription->setText( m_introduction.description.get() );
}
diff --git a/src/modules/packagechooser/page_package.ui b/src/modules/packagechooser/page_package.ui
index d021b08b3..fecfa3060 100644
--- a/src/modules/packagechooser/page_package.ui
+++ b/src/modules/packagechooser/page_package.ui
@@ -38,19 +38,6 @@ SPDX-License-Identifier: GPL-3.0-or-later
</item>
<item>
- <layout class="QVBoxLayout" name="verticalLayout" stretch="1,30,1">
+ <layout class="QVBoxLayout" name="verticalLayout" stretch="30,1,1">
- <item>
- <widget class="QLabel" name="productName">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text">
- <string>Product Name</string>
- </property>
- </widget>
- </item>
<item>
<widget class="FixedAspectRatioLabel" name="productScreenshot">
<property name="sizePolicy">
@@ -67,6 +54,19 @@ SPDX-License-Identifier: GPL-3.0-or-later
</property>
</widget>
</item>
+ <item>
+ <widget class="QLabel" name="productName">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Product Name</string>
+ </property>
+ </widget>
+ </item>
<item>
<widget class="QLabel" name="productDescription">
<property name="sizePolicy">

View file

@ -0,0 +1,109 @@
diff --git a/src/modules/packagechooserq/packagechooserq.qrc b/src/modules/packagechooserq/packagechooserq.qrc
index 1b892dce1..ee80a934b 100644
--- a/src/modules/packagechooserq/packagechooserq.qrc
+++ b/src/modules/packagechooserq/packagechooserq.qrc
@@ -4,5 +4,6 @@
<file>images/libreoffice.jpg</file>
<file>images/no-selection.png</file>
<file>images/plasma.png</file>
+ <file>packagechooserq@unfree.qml</file>
</qresource>
</RCC>
diff --git a/src/modules/packagechooserq/packagechooserq@unfree.qml b/src/modules/packagechooserq/packagechooserq@unfree.qml
new file mode 100644
index 000000000..cb87d864a
--- /dev/null
+++ b/src/modules/packagechooserq/packagechooserq@unfree.qml
@@ -0,0 +1,75 @@
+/* === This file is part of Calamares - <https://calamares.io> ===
+ *
+ * SPDX-FileCopyrightText: 2021 Anke Boersma <demm@kaosx.us>
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ * Calamares is Free Software: see the License-Identifier above.
+ *
+ */
+
+import io.calamares.core 1.0
+import io.calamares.ui 1.0
+
+import QtQuick 2.15
+import QtQuick.Controls 2.15
+import QtQuick.Layouts 1.3
+
+Item {
+
+ SystemPalette {
+ id: palette
+ colorGroup: SystemPalette.Active
+ }
+
+ width: parent.width
+ height: parent.height
+
+ Rectangle {
+ anchors.fill: parent
+ color: palette.window
+
+ ButtonGroup {
+ id: switchGroup
+ }
+
+ Column {
+ id: column
+ anchors.centerIn: parent
+ spacing: 5
+
+ Rectangle {
+ width: 700
+ height: 200
+ color: palette.base
+ radius: 10
+ border.width: 0
+ Text {
+ color: palette.text
+ width: 600
+ height: 150
+ anchors.centerIn: parent
+ text: qsTr("NixOS is fully open source, but it also provides software packages with unfree licenses. By default unfree packages are not allowed, but you can enable it here. If you check this box, software installed might have additional End User License Agreements (EULAs) attached. If not enabled, some hardware might not work fully when no suitable open source drivers are available.<br/>")
+ font.pointSize: 12
+ wrapMode: Text.WordWrap
+ }
+
+ CheckBox {
+ id: element2
+ anchors.horizontalCenter: parent.horizontalCenter
+ y: 145
+ text: qsTr("Allow unfree software")
+ checked: false
+
+ onCheckedChanged: {
+ if ( checked ) {
+ config.packageChoice = "unfree"
+ } else {
+ config.packageChoice = "free"
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
diff --git a/src/modules/packagechooserq/unfree.conf b/src/modules/packagechooserq/unfree.conf
new file mode 100644
index 000000000..da79a8eac
--- /dev/null
+++ b/src/modules/packagechooserq/unfree.conf
@@ -0,0 +1,11 @@
+# SPDX-FileCopyrightText: no
+# SPDX-License-Identifier: CC0-1.0
+#
+---
+qmlLabel:
+ label: "Unfree Software"
+method: legacy
+mode: required
+labels:
+ step: "Unfree Software"
+packageChoice: free

View file

@ -0,0 +1,31 @@
diff --git a/src/modules/users/Config.cpp b/src/modules/users/Config.cpp
index eedfd274d..0f3e78848 100644
--- a/src/modules/users/Config.cpp
+++ b/src/modules/users/Config.cpp
@@ -972,26 +972,11 @@ Config::createJobs() const
Calamares::Job* j;
- if ( !m_sudoersGroup.isEmpty() )
- {
- j = new SetupSudoJob( m_sudoersGroup, m_sudoStyle );
- jobs.append( Calamares::job_ptr( j ) );
- }
-
- j = new SetupGroupsJob( this );
- jobs.append( Calamares::job_ptr( j ) );
-
- j = new CreateUserJob( this );
- jobs.append( Calamares::job_ptr( j ) );
-
j = new SetPasswordJob( loginName(), userPassword() );
jobs.append( Calamares::job_ptr( j ) );
j = new SetPasswordJob( "root", rootPassword() );
jobs.append( Calamares::job_ptr( j ) );
- j = new SetHostNameJob( this );
- jobs.append( Calamares::job_ptr( j ) );
-
return jobs;
}

View file

@ -0,0 +1,25 @@
diff --git a/src/modules/keyboard/Config.cpp b/src/modules/keyboard/Config.cpp
index 720588810..af0dd1c8d 100644
--- a/src/modules/keyboard/Config.cpp
+++ b/src/modules/keyboard/Config.cpp
@@ -219,7 +219,10 @@ Config::xkbApply()
{ m_additionalLayoutInfo.additionalVariant, m_selectedVariant },
m_additionalLayoutInfo.groupSwitcher ) );
-
+ QString xkbmap = QString( "[('xkb','%1\%2'),('xkb','%3\%4')]").arg(
+ m_selectedLayout, ((!m_selectedVariant.isEmpty()) ? "+" + m_selectedVariant : ""),
+ m_additionalLayoutInfo.additionalLayout, ((!m_additionalLayoutInfo.additionalVariant.isEmpty()) ? "+" + m_additionalLayoutInfo.additionalVariant : ""));
+ QProcess::execute( "sh", { "-c", "if command -v gsettings; then gsettings set org.gnome.desktop.input-sources sources \"$0\"; fi", xkbmap });
cDebug() << "xkbmap selection changed to: " << m_selectedLayout << '-' << m_selectedVariant << "(added "
<< m_additionalLayoutInfo.additionalLayout << "-" << m_additionalLayoutInfo.additionalVariant
<< " since current layout is not ASCII-capable)";
@@ -227,6 +230,8 @@ Config::xkbApply()
else
{
QProcess::execute( "setxkbmap", xkbmap_layout_args( m_selectedLayout, m_selectedVariant ) );
+ QString xkbmap = QString( "[('xkb','%1\%2')]").arg( m_selectedLayout, ((!m_selectedVariant.isEmpty()) ? "+" + m_selectedVariant : "") );
+ QProcess::execute( "sh", { "-c", "if command -v gsettings; then gsettings set org.gnome.desktop.input-sources sources \"$0\"; fi", xkbmap });
cDebug() << "xkbmap selection changed to: " << m_selectedLayout << '-' << m_selectedVariant;
}
m_setxkbmapTimer.disconnect( this );

View file

@ -0,0 +1,30 @@
{ lib, stdenv, slop, ffmpeg, fetchFromGitHub, makeWrapper}:
stdenv.mkDerivation {
pname = "capture-unstable";
version = "2019-03-10";
src = fetchFromGitHub {
owner = "buhman";
repo = "capture";
rev = "80dd9e7195aad5c132badef610f19509f3935b24";
sha256 = "0zyyg4mvrny7cc2xgvfip97b6yc75ka5ni39rwls93971jbk83d6";
};
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
install -Dm755 src/capture.sh $out/bin/capture
patchShebangs $out/bin/capture
wrapProgram $out/bin/capture \
--prefix PATH : '${lib.makeBinPath [ slop ffmpeg ]}'
'';
meta = with lib; {
description = "A no bullshit screen capture tool";
homepage = "https://github.com/buhman/capture";
maintainers = [ maintainers.ar1a ];
license = licenses.gpl3Plus;
};
}

View file

@ -0,0 +1,28 @@
{ stdenv, lib, fetchFromGitHub, libsoundio, lame }:
stdenv.mkDerivation {
pname = "castty";
version = "unstable-2020-11-10";
src = fetchFromGitHub {
owner = "dhobsd";
repo = "castty";
rev = "333a2bafd96d56cd0bb91577ae5ba0f7d81b3d99";
sha256 = "0p84ivwsp8ds4drn0hx2ax04gp0xyq6blj1iqfsmrs4slrajdmqs";
};
buildInputs = [ libsoundio lame ];
makeFlags = [
"CC=${stdenv.cc.targetPrefix}cc"
"PREFIX=$(out)"
];
meta = with lib; {
description = "CLI tool to record audio-enabled screencasts of your terminal, for the web";
homepage = "https://github.com/dhobsd/castty";
license = licenses.bsd3;
maintainers = with maintainers; [ iblech ];
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,26 @@
{ lib, stdenv, fetchFromGitHub, cmake } :
with lib;
stdenv.mkDerivation rec {
pname = "catimg";
version = "2.7.0";
src = fetchFromGitHub {
owner = "posva";
repo = pname;
rev = version;
sha256 = "0a2dswbv4xddb2l2d55hc43lzvjwrjs5z9am7v6i0p0mi2fmc89s";
};
nativeBuildInputs = [ cmake ];
meta = {
license = licenses.mit;
homepage = "https://github.com/posva/catimg";
description = "Insanely fast image printing in your terminal";
maintainers = with maintainers; [ ryantm ];
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,34 @@
{ lib, stdenv, fetchFromGitHub, autoconf, ncurses, pcre }:
stdenv.mkDerivation rec {
pname = "ccze";
version = "0.2.1-2";
src = fetchFromGitHub {
owner = "madhouse";
repo = "ccze";
rev = "ccze-${version}";
hash = "sha256-LVwmbrq78mZcAEuAqjXTqLE5we83H9mcMPtxQx2Tn/c=";
};
nativeBuildInputs = [ autoconf ];
buildInputs = [ ncurses pcre ];
preConfigure = ''
autoheader
autoconf
'';
meta = with lib; {
description = "Fast, modular log colorizer";
longDescription = ''
Fast log colorizer written in C, intended to be a drop-in replacement
for the Perl colorize tool. Includes plugins for a variety of log
formats (Apache, Postfix, Procmail, etc.).
'';
license = licenses.gpl2;
maintainers = with maintainers; [ malyn ];
platforms = platforms.linux;
};
}

Some files were not shown because too many files have changed in this diff Show more