add known
All checks were successful
Hydra mautrix-cleanup Hydra build #22938 of nix-packages:x86_64-linux-master-pr87:mautrix-cleanup
Hydra fairfax-hd Hydra build #22939 of nix-packages:x86_64-linux-master-pr87:fairfax-hd
Hydra old-homepage Hydra build #22940 of nix-packages:x86_64-linux-master-pr87:old-homepage
Hydra pleroma-fe Hydra build #22941 of nix-packages:x86_64-linux-master-pr87:pleroma-fe
Hydra lotte-art Hydra build #22942 of nix-packages:x86_64-linux-master-pr87:lotte-art
Hydra emoji-lotte Hydra build #22943 of nix-packages:x86_64-linux-master-pr87:emoji-lotte
Hydra mautrix-signal Hydra build #22944 of nix-packages:x86_64-linux-master-pr87:mautrix-signal
Hydra constructium Hydra build #22945 of nix-packages:x86_64-linux-master-pr87:constructium
Hydra plover-plugins-manager Hydra build #22946 of nix-packages:x86_64-linux-master-pr87:plover-plugins-manager
Hydra plover-plugin-machine-hid Hydra build #22947 of nix-packages:x86_64-linux-master-pr87:plover-plugin-machine-hid
Hydra plover-plugin-emoji Hydra build #22948 of nix-packages:x86_64-linux-master-pr87:plover-plugin-emoji
Hydra emoji-volpeon-gphn Hydra build #22949 of nix-packages:x86_64-linux-master-pr87:emoji-volpeon-gphn
Hydra emoji-volpeon-bunhd-flip Hydra build #22950 of nix-packages:x86_64-linux-master-pr87:emoji-volpeon-bunhd-flip
Hydra python-plover-stroke Hydra build #22951 of nix-packages:x86_64-linux-master-pr87:python-plover-stroke
Hydra alco-sans Hydra build #22952 of nix-packages:x86_64-linux-master-pr87:alco-sans
Hydra emoji-volpeon-vlpn Hydra build #22953 of nix-packages:x86_64-linux-master-pr87:emoji-volpeon-vlpn
Hydra admin-fe Hydra build #22954 of nix-packages:x86_64-linux-master-pr87:admin-fe
Hydra python-rtf-tokenize Hydra build #22955 of nix-packages:x86_64-linux-master-pr87:python-rtf-tokenize
Hydra miifox-net Hydra build #22956 of nix-packages:x86_64-linux-master-pr87:miifox-net
Hydra plover-dict-didoesdigital Hydra build #22957 of nix-packages:x86_64-linux-master-pr87:plover-dict-didoesdigital
Hydra plover-plugin-rkb1-hid Hydra build #22958 of nix-packages:x86_64-linux-master-pr87:plover-plugin-rkb1-hid
Hydra emoji-volpeon-raccoon Hydra build #22959 of nix-packages:x86_64-linux-master-pr87:emoji-volpeon-raccoon
Hydra python-mautrix Hydra build #22960 of nix-packages:x86_64-linux-master-pr87:python-mautrix
Hydra plover Hydra build #22961 of nix-packages:x86_64-linux-master-pr87:plover
Hydra woodpecker-server Hydra build #22962 of nix-packages:x86_64-linux-master-pr87:woodpecker-server
Hydra nasin-nanpa Hydra build #22963 of nix-packages:x86_64-linux-master-pr87:nasin-nanpa
Hydra hydra Hydra build #22964 of nix-packages:x86_64-linux-master-pr87:hydra
Hydra emoji-volpeon-fox Hydra build #22965 of nix-packages:x86_64-linux-master-pr87:emoji-volpeon-fox
Hydra python-simplefuzzyset Hydra build #22966 of nix-packages:x86_64-linux-master-pr87:python-simplefuzzyset
Hydra fairfax Hydra build #22967 of nix-packages:x86_64-linux-master-pr87:fairfax
Hydra akkoma Hydra build #22968 of nix-packages:x86_64-linux-master-pr87:akkoma
Hydra emoji-volpeon-blobfox Hydra build #22969 of nix-packages:x86_64-linux-master-pr87:emoji-volpeon-blobfox
Hydra emoji-volpeon-blobfox-flip Hydra build #22970 of nix-packages:x86_64-linux-master-pr87:emoji-volpeon-blobfox-flip
Hydra python-tulir-telethon Hydra build #22971 of nix-packages:x86_64-linux-master-pr87:python-tulir-telethon
Hydra woodpecker-frontend Hydra build #22972 of nix-packages:x86_64-linux-master-pr87:woodpecker-frontend
Hydra woodpecker-cli Hydra build #22973 of nix-packages:x86_64-linux-master-pr87:woodpecker-cli
Hydra hydra-unstable Hydra build #22974 of nix-packages:x86_64-linux-master-pr87:hydra-unstable
Hydra mautrix-whatsapp Hydra build #22975 of nix-packages:x86_64-linux-master-pr87:mautrix-whatsapp
Hydra element-web Hydra build #22976 of nix-packages:x86_64-linux-master-pr87:element-web
Hydra mautrix-discord Hydra build #22977 of nix-packages:x86_64-linux-master-pr87:mautrix-discord
Hydra plover-plugin-tapey-tape Hydra build #22978 of nix-packages:x86_64-linux-master-pr87:plover-plugin-tapey-tape
Hydra kreative-square Hydra build #22979 of nix-packages:x86_64-linux-master-pr87:kreative-square
Hydra papermc Hydra build #22980 of nix-packages:x86_64-linux-master-pr87:papermc
Hydra mautrix-telegram Hydra build #22981 of nix-packages:x86_64-linux-master-pr87:mautrix-telegram
Hydra python-instagram Hydra build #22982 of nix-packages:x86_64-linux-master-pr87:python-instagram
Hydra known Hydra build #22983 of nix-packages:x86_64-linux-master-pr87:known
Hydra woodpecker-agent Hydra build #22984 of nix-packages:x86_64-linux-master-pr87:woodpecker-agent
Hydra emoji-caro Hydra build #22985 of nix-packages:x86_64-linux-master-pr87:emoji-caro
Hydra emoji-volpeon-bunhd Hydra build #22986 of nix-packages:x86_64-linux-master-pr87:emoji-volpeon-bunhd
Hydra emoji-volpeon-drgn Hydra build #22987 of nix-packages:x86_64-linux-master-pr87:emoji-volpeon-drgn
Hydra plover-plugin-yaml-dictionary Hydra build #22988 of nix-packages:x86_64-linux-master-pr87:plover-plugin-yaml-dictionary
Hydra matrix-media-repo Hydra build #22989 of nix-packages:x86_64-linux-master-pr87:matrix-media-repo
All checks were successful
Hydra mautrix-cleanup Hydra build #22938 of nix-packages:x86_64-linux-master-pr87:mautrix-cleanup
Hydra fairfax-hd Hydra build #22939 of nix-packages:x86_64-linux-master-pr87:fairfax-hd
Hydra old-homepage Hydra build #22940 of nix-packages:x86_64-linux-master-pr87:old-homepage
Hydra pleroma-fe Hydra build #22941 of nix-packages:x86_64-linux-master-pr87:pleroma-fe
Hydra lotte-art Hydra build #22942 of nix-packages:x86_64-linux-master-pr87:lotte-art
Hydra emoji-lotte Hydra build #22943 of nix-packages:x86_64-linux-master-pr87:emoji-lotte
Hydra mautrix-signal Hydra build #22944 of nix-packages:x86_64-linux-master-pr87:mautrix-signal
Hydra constructium Hydra build #22945 of nix-packages:x86_64-linux-master-pr87:constructium
Hydra plover-plugins-manager Hydra build #22946 of nix-packages:x86_64-linux-master-pr87:plover-plugins-manager
Hydra plover-plugin-machine-hid Hydra build #22947 of nix-packages:x86_64-linux-master-pr87:plover-plugin-machine-hid
Hydra plover-plugin-emoji Hydra build #22948 of nix-packages:x86_64-linux-master-pr87:plover-plugin-emoji
Hydra emoji-volpeon-gphn Hydra build #22949 of nix-packages:x86_64-linux-master-pr87:emoji-volpeon-gphn
Hydra emoji-volpeon-bunhd-flip Hydra build #22950 of nix-packages:x86_64-linux-master-pr87:emoji-volpeon-bunhd-flip
Hydra python-plover-stroke Hydra build #22951 of nix-packages:x86_64-linux-master-pr87:python-plover-stroke
Hydra alco-sans Hydra build #22952 of nix-packages:x86_64-linux-master-pr87:alco-sans
Hydra emoji-volpeon-vlpn Hydra build #22953 of nix-packages:x86_64-linux-master-pr87:emoji-volpeon-vlpn
Hydra admin-fe Hydra build #22954 of nix-packages:x86_64-linux-master-pr87:admin-fe
Hydra python-rtf-tokenize Hydra build #22955 of nix-packages:x86_64-linux-master-pr87:python-rtf-tokenize
Hydra miifox-net Hydra build #22956 of nix-packages:x86_64-linux-master-pr87:miifox-net
Hydra plover-dict-didoesdigital Hydra build #22957 of nix-packages:x86_64-linux-master-pr87:plover-dict-didoesdigital
Hydra plover-plugin-rkb1-hid Hydra build #22958 of nix-packages:x86_64-linux-master-pr87:plover-plugin-rkb1-hid
Hydra emoji-volpeon-raccoon Hydra build #22959 of nix-packages:x86_64-linux-master-pr87:emoji-volpeon-raccoon
Hydra python-mautrix Hydra build #22960 of nix-packages:x86_64-linux-master-pr87:python-mautrix
Hydra plover Hydra build #22961 of nix-packages:x86_64-linux-master-pr87:plover
Hydra woodpecker-server Hydra build #22962 of nix-packages:x86_64-linux-master-pr87:woodpecker-server
Hydra nasin-nanpa Hydra build #22963 of nix-packages:x86_64-linux-master-pr87:nasin-nanpa
Hydra hydra Hydra build #22964 of nix-packages:x86_64-linux-master-pr87:hydra
Hydra emoji-volpeon-fox Hydra build #22965 of nix-packages:x86_64-linux-master-pr87:emoji-volpeon-fox
Hydra python-simplefuzzyset Hydra build #22966 of nix-packages:x86_64-linux-master-pr87:python-simplefuzzyset
Hydra fairfax Hydra build #22967 of nix-packages:x86_64-linux-master-pr87:fairfax
Hydra akkoma Hydra build #22968 of nix-packages:x86_64-linux-master-pr87:akkoma
Hydra emoji-volpeon-blobfox Hydra build #22969 of nix-packages:x86_64-linux-master-pr87:emoji-volpeon-blobfox
Hydra emoji-volpeon-blobfox-flip Hydra build #22970 of nix-packages:x86_64-linux-master-pr87:emoji-volpeon-blobfox-flip
Hydra python-tulir-telethon Hydra build #22971 of nix-packages:x86_64-linux-master-pr87:python-tulir-telethon
Hydra woodpecker-frontend Hydra build #22972 of nix-packages:x86_64-linux-master-pr87:woodpecker-frontend
Hydra woodpecker-cli Hydra build #22973 of nix-packages:x86_64-linux-master-pr87:woodpecker-cli
Hydra hydra-unstable Hydra build #22974 of nix-packages:x86_64-linux-master-pr87:hydra-unstable
Hydra mautrix-whatsapp Hydra build #22975 of nix-packages:x86_64-linux-master-pr87:mautrix-whatsapp
Hydra element-web Hydra build #22976 of nix-packages:x86_64-linux-master-pr87:element-web
Hydra mautrix-discord Hydra build #22977 of nix-packages:x86_64-linux-master-pr87:mautrix-discord
Hydra plover-plugin-tapey-tape Hydra build #22978 of nix-packages:x86_64-linux-master-pr87:plover-plugin-tapey-tape
Hydra kreative-square Hydra build #22979 of nix-packages:x86_64-linux-master-pr87:kreative-square
Hydra papermc Hydra build #22980 of nix-packages:x86_64-linux-master-pr87:papermc
Hydra mautrix-telegram Hydra build #22981 of nix-packages:x86_64-linux-master-pr87:mautrix-telegram
Hydra python-instagram Hydra build #22982 of nix-packages:x86_64-linux-master-pr87:python-instagram
Hydra known Hydra build #22983 of nix-packages:x86_64-linux-master-pr87:known
Hydra woodpecker-agent Hydra build #22984 of nix-packages:x86_64-linux-master-pr87:woodpecker-agent
Hydra emoji-caro Hydra build #22985 of nix-packages:x86_64-linux-master-pr87:emoji-caro
Hydra emoji-volpeon-bunhd Hydra build #22986 of nix-packages:x86_64-linux-master-pr87:emoji-volpeon-bunhd
Hydra emoji-volpeon-drgn Hydra build #22987 of nix-packages:x86_64-linux-master-pr87:emoji-volpeon-drgn
Hydra plover-plugin-yaml-dictionary Hydra build #22988 of nix-packages:x86_64-linux-master-pr87:plover-plugin-yaml-dictionary
Hydra matrix-media-repo Hydra build #22989 of nix-packages:x86_64-linux-master-pr87:matrix-media-repo
This commit is contained in:
parent
687a975abc
commit
ffcbdaadb4
11 changed files with 21481 additions and 0 deletions
|
@ -118,4 +118,5 @@ matrix:
|
|||
- python-instagram
|
||||
- element-web
|
||||
- woodpecker-server
|
||||
- known
|
||||
skip_clone: true
|
||||
|
|
|
@ -68,6 +68,7 @@ in
|
|||
woodpecker-server
|
||||
hydra
|
||||
hydra-unstable
|
||||
known
|
||||
;
|
||||
}
|
||||
// (
|
||||
|
|
|
@ -111,6 +111,7 @@
|
|||
woodpecker-server
|
||||
hydra
|
||||
hydra-unstable
|
||||
known
|
||||
;
|
||||
}
|
||||
// (
|
||||
|
|
|
@ -82,6 +82,7 @@ system: self: super: let
|
|||
];
|
||||
});
|
||||
hydra-unstable = self.hydra;
|
||||
known = self.callPackage ./web/known {};
|
||||
})
|
||||
riscv-overlay
|
||||
];
|
||||
|
|
25
scripts/update-composer.sh
Executable file
25
scripts/update-composer.sh
Executable file
|
@ -0,0 +1,25 @@
|
|||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p php.packages.composer git
|
||||
|
||||
SOURCE=$1
|
||||
WRITE_PATH=$(realpath $2)
|
||||
SOURCE_EXTRACTED=$(mktemp -du)
|
||||
|
||||
cp -r $SOURCE $SOURCE_EXTRACTED
|
||||
chmod -R +w $SOURCE_EXTRACTED
|
||||
|
||||
cd $SOURCE_EXTRACTED
|
||||
|
||||
rm composer.lock
|
||||
|
||||
composer update
|
||||
|
||||
rm -rf vendor
|
||||
|
||||
$(nix-build -E 'let composer2nix = builtins.fetchGit {url = "https://git.chir.rs/darkkirb/composer2nix.git"; }; in import composer2nix')/bin/composer2nix
|
||||
|
||||
cp composer-env.nix php-packages.nix $WRITE_PATH
|
||||
|
||||
rm result
|
||||
|
||||
git diff --no-index $SOURCE $SOURCE_EXTRACTED | sed "s,$SOURCE,,g" | sed "s,$SOURCE_EXTRACTED,,g" > $WRITE_PATH/update.patch
|
276
web/known/composer-env.nix
Normal file
276
web/known/composer-env.nix
Normal file
|
@ -0,0 +1,276 @@
|
|||
# This file originates from composer2nix
|
||||
{
|
||||
stdenv,
|
||||
lib,
|
||||
writeTextFile,
|
||||
fetchurl,
|
||||
php,
|
||||
unzip,
|
||||
phpPackages,
|
||||
libarchive,
|
||||
}: let
|
||||
inherit (phpPackages) composer;
|
||||
|
||||
filterSrc = src:
|
||||
builtins.filterSource (path: type: type != "directory" || (baseNameOf path != ".git" && baseNameOf path != ".git" && baseNameOf path != ".svn")) src;
|
||||
|
||||
buildZipPackage = {
|
||||
name,
|
||||
src,
|
||||
}:
|
||||
stdenv.mkDerivation {
|
||||
inherit name src;
|
||||
nativeBuildInputs = [unzip];
|
||||
buildCommand = ''
|
||||
shopt -s dotglob
|
||||
unzip $src
|
||||
baseDir=$(find . -type d -mindepth 1 -maxdepth 1)
|
||||
cd $baseDir
|
||||
mkdir -p $out
|
||||
mv * $out
|
||||
'';
|
||||
};
|
||||
|
||||
buildTarPackage = {
|
||||
name,
|
||||
src,
|
||||
}:
|
||||
stdenv.mkDerivation {
|
||||
inherit name src;
|
||||
nativeBuildInputs = [libarchive];
|
||||
buildCommand = ''
|
||||
shopt -s dotglob
|
||||
bsdtar -xf $src
|
||||
baseDir=$(find . -type d -mindepth 1 -maxdepth 1)
|
||||
cd $baseDir
|
||||
mkdir -p $out
|
||||
mv * $out
|
||||
'';
|
||||
};
|
||||
|
||||
buildPackage = {
|
||||
name,
|
||||
src,
|
||||
packages ? {},
|
||||
devPackages ? {},
|
||||
buildInputs ? [],
|
||||
symlinkDependencies ? false,
|
||||
executable ? false,
|
||||
removeComposerArtifacts ? false,
|
||||
postInstall ? "",
|
||||
noDev ? false,
|
||||
composerExtraArgs ? "",
|
||||
unpackPhase ? "true",
|
||||
buildPhase ? "true",
|
||||
...
|
||||
} @ args: let
|
||||
reconstructInstalled = writeTextFile {
|
||||
name = "reconstructinstalled.php";
|
||||
executable = true;
|
||||
text = ''
|
||||
#! ${php}/bin/php
|
||||
<?php
|
||||
if(file_exists($argv[1]))
|
||||
{
|
||||
$composerLockStr = file_get_contents($argv[1]);
|
||||
|
||||
if($composerLockStr === false)
|
||||
{
|
||||
fwrite(STDERR, "Cannot open composer.lock contents\n");
|
||||
exit(1);
|
||||
}
|
||||
else
|
||||
{
|
||||
$config = json_decode($composerLockStr, true);
|
||||
|
||||
if(array_key_exists("packages", $config))
|
||||
$allPackages = $config["packages"];
|
||||
else
|
||||
$allPackages = array();
|
||||
|
||||
${lib.optionalString (!noDev) ''
|
||||
if(array_key_exists("packages-dev", $config))
|
||||
$allPackages = array_merge($allPackages, $config["packages-dev"]);
|
||||
''}
|
||||
|
||||
$packagesStr = json_encode($allPackages, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
|
||||
print($packagesStr);
|
||||
}
|
||||
}
|
||||
else
|
||||
print("[]");
|
||||
?>
|
||||
'';
|
||||
};
|
||||
|
||||
constructBin = writeTextFile {
|
||||
name = "constructbin.php";
|
||||
executable = true;
|
||||
text = ''
|
||||
#! ${php}/bin/php
|
||||
<?php
|
||||
$composerJSONStr = file_get_contents($argv[1]);
|
||||
|
||||
if($composerJSONStr === false)
|
||||
{
|
||||
fwrite(STDERR, "Cannot open composer.json contents\n");
|
||||
exit(1);
|
||||
}
|
||||
else
|
||||
{
|
||||
$config = json_decode($composerJSONStr, true);
|
||||
|
||||
if(array_key_exists("bin-dir", $config))
|
||||
$binDir = $config["bin-dir"];
|
||||
else
|
||||
$binDir = "bin";
|
||||
|
||||
if(array_key_exists("bin", $config))
|
||||
{
|
||||
if(!file_exists("vendor/".$binDir))
|
||||
mkdir("vendor/".$binDir);
|
||||
|
||||
foreach($config["bin"] as $bin)
|
||||
symlink("../../".$bin, "vendor/".$binDir."/".basename($bin));
|
||||
}
|
||||
}
|
||||
?>
|
||||
'';
|
||||
};
|
||||
|
||||
bundleDependencies = dependencies:
|
||||
lib.concatMapStrings (dependencyName: let
|
||||
dependency = dependencies.${dependencyName};
|
||||
in ''
|
||||
${
|
||||
if dependency.targetDir == ""
|
||||
then ''
|
||||
vendorDir="$(dirname ${dependencyName})"
|
||||
mkdir -p "$vendorDir"
|
||||
${
|
||||
if symlinkDependencies
|
||||
then ''ln -s "${dependency.src}" "$vendorDir/$(basename "${dependencyName}")"''
|
||||
else ''cp -av "${dependency.src}" "$vendorDir/$(basename "${dependencyName}")"''
|
||||
}
|
||||
''
|
||||
else ''
|
||||
namespaceDir="${dependencyName}/$(dirname "${dependency.targetDir}")"
|
||||
mkdir -p "$namespaceDir"
|
||||
${
|
||||
if symlinkDependencies
|
||||
then ''ln -s "${dependency.src}" "$namespaceDir/$(basename "${dependency.targetDir}")"''
|
||||
else ''cp -av "${dependency.src}" "$namespaceDir/$(basename "${dependency.targetDir}")"''
|
||||
}
|
||||
''
|
||||
}
|
||||
'') (builtins.attrNames dependencies);
|
||||
|
||||
extraArgs = removeAttrs args ["packages" "devPackages" "buildInputs"];
|
||||
in
|
||||
stdenv.mkDerivation ({
|
||||
buildInputs = [php composer] ++ buildInputs;
|
||||
|
||||
inherit unpackPhase buildPhase;
|
||||
|
||||
installPhase = ''
|
||||
${
|
||||
if executable
|
||||
then ''
|
||||
mkdir -p $out/share/php
|
||||
cp -av $src $out/share/php/$name
|
||||
chmod -R u+w $out/share/php/$name
|
||||
cd $out/share/php/$name
|
||||
''
|
||||
else ''
|
||||
cp -av $src $out
|
||||
chmod -R u+w $out
|
||||
cd $out
|
||||
''
|
||||
}
|
||||
|
||||
# Remove unwanted files
|
||||
rm -f *.nix
|
||||
|
||||
export HOME=$TMPDIR
|
||||
|
||||
# Remove the provided vendor folder if it exists
|
||||
rm -Rf vendor
|
||||
|
||||
# If there is no composer.lock file, compose a dummy file.
|
||||
# Otherwise, composer attempts to download the package.json file from
|
||||
# the registry which we do not want.
|
||||
if [ ! -f composer.lock ]
|
||||
then
|
||||
cat > composer.lock <<EOF
|
||||
{
|
||||
"packages": []
|
||||
}
|
||||
EOF
|
||||
fi
|
||||
|
||||
# Reconstruct the installed.json file from the lock file
|
||||
mkdir -p vendor/composer
|
||||
${php}/bin/php ${reconstructInstalled} composer.lock > vendor/composer/installed.json
|
||||
|
||||
# Copy or symlink the provided dependencies
|
||||
cd vendor
|
||||
${bundleDependencies packages}
|
||||
${lib.optionalString (!noDev) (bundleDependencies devPackages)}
|
||||
cd ..
|
||||
|
||||
# Reconstruct autoload scripts
|
||||
# We use the optimize feature because Nix packages cannot change after they have been built
|
||||
# Using the dynamic loader for a Nix package is useless since there is nothing to dynamically reload.
|
||||
composer dump-autoload --optimize ${lib.optionalString noDev "--no-dev"} ${composerExtraArgs}
|
||||
|
||||
# Run the install step as a validation to confirm that everything works out as expected
|
||||
composer install --optimize-autoloader ${lib.optionalString noDev "--no-dev"} ${composerExtraArgs}
|
||||
|
||||
${lib.optionalString executable ''
|
||||
# Reconstruct the bin/ folder if we deploy an executable project
|
||||
${php}/bin/php ${constructBin} composer.json
|
||||
ln -s $(pwd)/vendor/bin $out/bin
|
||||
''}
|
||||
|
||||
${lib.optionalString (!symlinkDependencies) ''
|
||||
# Patch the shebangs if possible
|
||||
if [ -d $(pwd)/vendor/bin ]
|
||||
then
|
||||
# Look for all executables in bin/
|
||||
for i in $(pwd)/vendor/bin/*
|
||||
do
|
||||
# Look for their location
|
||||
realFile=$(readlink -f "$i")
|
||||
|
||||
# Restore write permissions
|
||||
chmod u+wx "$(dirname "$realFile")"
|
||||
chmod u+w "$realFile"
|
||||
|
||||
# Patch shebang
|
||||
sed -e "s|#!/usr/bin/php|#!${php}/bin/php|" \
|
||||
-e "s|#!/usr/bin/env php|#!${php}/bin/php|" \
|
||||
"$realFile" > tmp
|
||||
mv tmp "$realFile"
|
||||
chmod u+x "$realFile"
|
||||
done
|
||||
fi
|
||||
''}
|
||||
|
||||
if [ "$removeComposerArtifacts" = "1" ]
|
||||
then
|
||||
# Remove composer stuff
|
||||
rm -f composer.json composer.lock
|
||||
fi
|
||||
|
||||
# Execute post install hook
|
||||
runHook postInstall
|
||||
'';
|
||||
}
|
||||
// extraArgs);
|
||||
in {
|
||||
inherit filterSrc;
|
||||
composer = lib.makeOverridable composer;
|
||||
buildZipPackage = lib.makeOverridable buildZipPackage;
|
||||
buildTarPackage = lib.makeOverridable buildTarPackage;
|
||||
buildPackage = lib.makeOverridable buildPackage;
|
||||
}
|
71
web/known/default.nix
Normal file
71
web/known/default.nix
Normal file
|
@ -0,0 +1,71 @@
|
|||
{
|
||||
php,
|
||||
phpPackages,
|
||||
stdenv,
|
||||
lib,
|
||||
writeTextFile,
|
||||
writeScript,
|
||||
unzip,
|
||||
libarchive,
|
||||
fetchurl,
|
||||
fetchgit,
|
||||
fetchhg,
|
||||
fetchsvn,
|
||||
applyPatches,
|
||||
fetchFromGitHub,
|
||||
}: let
|
||||
source = builtins.fromJSON (builtins.readFile ./source.json);
|
||||
src = applyPatches {
|
||||
src = fetchFromGitHub {
|
||||
owner = "idno";
|
||||
repo = "known";
|
||||
inherit (source) rev sha256;
|
||||
};
|
||||
patches = [./fix-build.patch];
|
||||
};
|
||||
/*
|
||||
src' = stdenv.mkDerivation {
|
||||
name = "${src.name}-patched";
|
||||
inherit src;
|
||||
buildPhase = "";
|
||||
installPhase = ''
|
||||
cp -rv $src $out
|
||||
chmod +w $out
|
||||
chmod +w $out/composer.lock
|
||||
rm -f $out/composer.lock
|
||||
cp ${./composer.lock} $out/composer.lock
|
||||
'';
|
||||
};
|
||||
*/
|
||||
|
||||
src' = applyPatches {
|
||||
inherit src;
|
||||
patches = [./update.patch];
|
||||
};
|
||||
composerEnv = import ./composer-env.nix {
|
||||
inherit stdenv lib writeTextFile fetchurl unzip libarchive;
|
||||
inherit php phpPackages;
|
||||
};
|
||||
phpPackages' = import ./php-packages.nix {
|
||||
inherit composerEnv;
|
||||
noDev = false;
|
||||
inherit fetchurl fetchgit fetchhg fetchsvn;
|
||||
};
|
||||
in
|
||||
phpPackages'.overrideAttrs (super: {
|
||||
name = "${super.name}-${source.date}";
|
||||
pname = super.name;
|
||||
version = source.date;
|
||||
src = composerEnv.filterSrc src';
|
||||
COMPOSER_DISABLE_NETWORK = "1";
|
||||
passthru = {
|
||||
inherit src;
|
||||
updateScript = writeScript "update-known" ''
|
||||
${../../scripts/update-git.sh} https://github.com/idno/known web/known/source.json
|
||||
if [ "$(git diff -- web/known/source.json)" ]; then
|
||||
SRC_PATH=$(nix-build -E '(import ./. {}).known.passthru.src')
|
||||
${../../scripts/update-composer.sh} $SRC_PATH web/known/
|
||||
fi
|
||||
'';
|
||||
};
|
||||
})
|
12
web/known/fix-build.patch
Normal file
12
web/known/fix-build.patch
Normal file
|
@ -0,0 +1,12 @@
|
|||
diff --git a/composer.json b/composer.json
|
||||
index 5e7eb5f4..01125668 100644
|
||||
--- a/composer.json
|
||||
+++ b/composer.json
|
||||
@@ -3,6 +3,7 @@
|
||||
"description": "A social publishing platform.",
|
||||
"type": "project",
|
||||
"homepage": "https://withknown.com/",
|
||||
+ "version": "1.3.2",
|
||||
"repositories": [
|
||||
{
|
||||
"type": "composer",
|
1414
web/known/php-packages.nix
Normal file
1414
web/known/php-packages.nix
Normal file
File diff suppressed because it is too large
Load diff
11
web/known/source.json
Normal file
11
web/known/source.json
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
"url": "https://github.com/idno/known",
|
||||
"rev": "a2e195ec78b375fffe8e2b723c987c559b0f7be1",
|
||||
"date": "2023-01-29T09:02:07-08:00",
|
||||
"path": "/nix/store/p8ci2ynwcjq10hdmvac1mnqc532yxi6k-known",
|
||||
"sha256": "0gpgqhcqzy5prkgwjdxvyw1kas39371yfhjayk7jxvbfam3ymvcm",
|
||||
"fetchLFS": false,
|
||||
"fetchSubmodules": false,
|
||||
"deepClone": false,
|
||||
"leaveDotGit": false
|
||||
}
|
19668
web/known/update.patch
Normal file
19668
web/known/update.patch
Normal file
File diff suppressed because one or more lines are too long
Reference in a new issue