gaw: 20220315 -> 20250128 (#399902)
This commit is contained in:
@@ -1,19 +1,78 @@
|
|||||||
{
|
{
|
||||||
stdenv,
|
stdenv,
|
||||||
fetchurl,
|
runCommandLocal,
|
||||||
lib,
|
lib,
|
||||||
|
htmlq,
|
||||||
|
curl,
|
||||||
|
cacert,
|
||||||
gtk3,
|
gtk3,
|
||||||
pkg-config,
|
pkg-config,
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "gaw";
|
pname = "gaw3";
|
||||||
version = "20220315";
|
version = "20250128";
|
||||||
|
|
||||||
src = fetchurl {
|
# https://www.rvq.fr/php/ndl.php?id=gaw.*
|
||||||
url = "https://download.tuxfamily.org/gaw/download/gaw3-${version}.tar.gz";
|
# https://www.rvq.fr/php/ndl.php?id=gaw3-20250128.tar.gz
|
||||||
sha256 = "0j2bqi9444s1mfbr7x9rqp232xf7ab9z7ifsnl305jsklp6qmrbg";
|
src =
|
||||||
};
|
runCommandLocal "gaw3-${version}.tar.gz"
|
||||||
|
{
|
||||||
|
BASE = "https://www.rvq.fr/php/ndl.php";
|
||||||
|
FNAME = "gaw3-${version}.tar.gz";
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
htmlq
|
||||||
|
curl
|
||||||
|
];
|
||||||
|
SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt";
|
||||||
|
|
||||||
|
outputHashMode = "recursive";
|
||||||
|
outputHashAlgo = "sha256";
|
||||||
|
outputHash = "sha256-3uO+209+cmu231iabyYmABmgegyxAxswWDWA/v8WSy0=";
|
||||||
|
}
|
||||||
|
''
|
||||||
|
# fetch download page
|
||||||
|
html_form=$(
|
||||||
|
curl "$BASE?id=$FNAME" |
|
||||||
|
tr '\n' ' ' | tr -s ' ' | # minimize whitespace
|
||||||
|
htmlq tr | # select table rows, one per line
|
||||||
|
grep "<td>$FNAME</td>" | # filter for row of interest
|
||||||
|
head -n1 | # first match, just in case
|
||||||
|
htmlq form --base "$BASE"
|
||||||
|
)
|
||||||
|
|
||||||
|
declare -a curl_args=()
|
||||||
|
|
||||||
|
# hidden fields
|
||||||
|
declare -a input_names=()
|
||||||
|
readarray -td $'\n' input_names < <(
|
||||||
|
htmlq <<<"$html_form" "input[type=hidden]" -a name
|
||||||
|
)
|
||||||
|
for input_name in "''${input_names[@]}"; do
|
||||||
|
input_value=$(
|
||||||
|
htmlq <<<"$html_form" "input[type=hidden][name=''${input_name}]" -a value
|
||||||
|
)
|
||||||
|
echo "$input_name = $input_value"
|
||||||
|
curl_args+=( --form "$input_name=$input_value" )
|
||||||
|
done
|
||||||
|
|
||||||
|
# destination
|
||||||
|
curl_args+=(
|
||||||
|
"https://www.rvq.fr/$( htmlq <<<"$html_form" form -a action )"
|
||||||
|
)
|
||||||
|
|
||||||
|
# POST and download
|
||||||
|
(set -x
|
||||||
|
curl -X POST "''${curl_args[@]}" $NIX_CURL_FLAGS --output "$FNAME"
|
||||||
|
)
|
||||||
|
|
||||||
|
# unpack and strip root dir
|
||||||
|
mkdir unpack/
|
||||||
|
tar xvf "$FNAME" --directory=unpack/
|
||||||
|
[[ "$(printf "%s\n" unpack/* | wc -l)" -eq 1 ]]
|
||||||
|
cp -a unpack/* $out
|
||||||
|
'';
|
||||||
|
|
||||||
nativeBuildInputs = [ pkg-config ];
|
nativeBuildInputs = [ pkg-config ];
|
||||||
|
|
||||||
@@ -28,7 +87,7 @@ stdenv.mkDerivation rec {
|
|||||||
input from sound cards. Data can be imported to gaw using files,
|
input from sound cards. Data can be imported to gaw using files,
|
||||||
direct tcp/ip connection or directly from the sound card.
|
direct tcp/ip connection or directly from the sound card.
|
||||||
'';
|
'';
|
||||||
homepage = "http://gaw.tuxfamily.org";
|
homepage = "https://www.rvq.fr/linux/gaw.php";
|
||||||
license = licenses.gpl2Plus;
|
license = licenses.gpl2Plus;
|
||||||
maintainers = with maintainers; [ fbeffa ];
|
maintainers = with maintainers; [ fbeffa ];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
|
|||||||
Reference in New Issue
Block a user