1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
#!/bin/bash
NAME=$(basename $PWD)
OWNER=$(sed -n '/^%global gh_owner/{s/.* //;p}' $NAME.spec)
PROJECT=$(sed -n '/^%global gh_project/{s/.* //;p}' $NAME.spec)
VERSION=$(sed -n '/^%global upstream_version/{s/.* //;p}' $NAME.spec)
COMMIT=$(sed -n '/^%global gh_commit/{s/.* //;p}' $NAME.spec)
SHORT=${COMMIT:0:7}
echo -e "\nCreate git snapshot\nName=$NAME, Owner=$OWNER, Project=$PROJECT, Version=$VERSION, Commit=$COMMIT\n"
echo "Cloning..."
git clone https://github.com/$OWNER/$PROJECT.git $PROJECT-$COMMIT
echo "Getting commit..."
pushd $PROJECT-$COMMIT
git checkout $COMMIT || exit 1
cp composer.json vendor/composer/installed.json ../
sed -e 's/"config": {/"config": {"platform": {"php": "7.4.0"},/' -i composer.json
composer install --no-dev --optimize-autoloader
mkdir data
cp ${HOME}/.cache/bartlett/compatinfo-db.sqlite data
php -r '
$pkgs = file_get_contents("vendor/composer/installed.json");
$pkgs = json_decode($pkgs, true);
if (!is_array($pkgs) || !isset($pkgs["packages"])) {
echo "cant decode json file\n";
exit(3);
}
$lic = [];
foreach($pkgs["packages"] as $pkg) {
printf("Provides: bundled(php-%s) = %s\n", str_replace(["/", "_"], ["-", "-"], $pkg["name"]), $pkg["version"]);
$lic = array_merge($lic, $pkg["license"]);
}
sort($lic);
printf("\nLicense: %s\n", implode(" and ", array_unique($lic)));'
popd
echo "Archiving..."
tar czf $NAME-$VERSION-$SHORT.tgz --exclude-vcs $PROJECT-$COMMIT
echo "Cleaning..."
rm -rf $PROJECT-$COMMIT
echo "Done."
|