Bug 58213 - [FR] git-lfs(1) support
Summary: [FR] git-lfs(1) support
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: gear (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Dmitry V. Levin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2026-03-12 22:24 MSK by Konstantin A Lepikhov (L.A. Kostis)
Modified: 2026-03-15 22:56 MSK (History)
5 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Konstantin A Lepikhov (L.A. Kostis) 2026-03-12 22:24:25 MSK
Привет!

Не знаю, насколько это решит проблему поддержки LFS на уровне сборочницы, но для локальных сборок (через gear-hsh/gear-rpm) это работает.

https://git.altlinux.org/people/lakostis/packages/?p=gear.git&a=commitdiff&h=4c707ece59895e019138e04be33c6c53faaaa4f1

Пример упаковки с данным параметром:

nvidia_glx on  master [?] took 15s 
❯ git ls-tree 21c442cb23632f1e6eca6c149bfe9197c38ecd24
040000 tree d9a41cb4c766af661c7d04cc37051c96b03e8487    .gear
100644 blob 923e9ab2b292ab9167a5aae79a4de219aa6a96b5    .gitattributes
100644 blob 1b7f4ae76654a530122a5b751e0027ac9e1263ea    10-nvidia-render-offload.conf
100644 blob 3fdd67853aa2410ea22e48276a778ca32f5e37cc    10-nvidia.conf
100644 blob db545ee8a64ffcfb9eeb6d354df32de600f15988    99-nvidia.rules
100644 blob f6d53c3eef54afdeb793eaaaf33fa9f7a7ee133d    NVIDIA-Linux-aarch64-595.45.04.run
100644 blob 5428345834407cf48dda1e2f1aa428bec546f6e8    NVIDIA-Linux-x86_64-595.45.04.run
100755 blob 5a78033bad65a314a5cf327dac2b760e2acb8501    get.sh
100644 blob fc6d0694249959452deb58bbaf06955edf2c9af7    nvidia-persistenced.init.alt
100644 blob 5cbec478c24b923d3d2059253cdfa975d12e913e    nvidia-persistenced.service.alt
100644 blob a2c7869821cf3957be2de5db1698eb14f568e07c    nvidia.modprobe
100755 blob 751433b3a1429c755266e39ff792c729a22a1485    nvidia_create_xinf.sh
100644 blob 08ab8537b23e9bab1207482985e7815b7e8b8c6a    nvidia_glx.spec

❯ gear-rpm -bs -v --nodeps --lfs
mkdir: created directory '/home/lakostis/tmp/gear.YTcUGVxS/out'
gear: Extracted file by pattern "*.run": NVIDIA-Linux-aarch64-595.45.04.run
gear: Extracting LFS object f6d53c3eef54afdeb793eaaaf33fa9f7a7ee133d -> /home/lakostis/tmp/gear.YTcUGVxS/out/NVIDIA-Linux-aarch64-595.45.04.run
gear: Extracted file by pattern "*.run": NVIDIA-Linux-x86_64-595.45.04.run
gear: Extracting LFS object 5428345834407cf48dda1e2f1aa428bec546f6e8 -> /home/lakostis/tmp/gear.YTcUGVxS/out/NVIDIA-Linux-x86_64-595.45.04.run
gear: Extracted file by pattern "*.modprobe": nvidia.modprobe
gear: Extracted file by pattern "*.conf": 10-nvidia-render-offload.conf
gear: Extracted file by pattern "*.conf": 10-nvidia.conf
gear: Extracted file by pattern "*.init*": nvidia-persistenced.init.alt
gear: Extracted file by pattern "*.service*": nvidia-persistenced.service.alt
gear: Extracted file by pattern "*.rules": 99-nvidia.rules
gear: Extracted file by pattern "*.sh": get.sh
gear: Extracted file by pattern "*.sh": nvidia_create_xinf.sh
gear: Extracted specfile: nvidia_glx.spec
gear: Executing: gear-command-rpmbuild rpmbuild -bs --nodeps
gear-command-rpmbuild: Executing: rpmbuild -bs --nodeps --define _specdir /home/lakostis/tmp/gear.YTcUGVxS/out --define _sourcedir /home/lakostis/tmp/gear.YTcUGVxS/out /home/lakostis/tmp/gear.YTcUGVxS/out/nvidia_glx.spec
warning: ignored self-provides: libnvidia-pkcs11 = 2:595.45.04-alt1
Wrote: /home/lakostis/local/src/RPM/SRPMS/nvidia_glx-595.45.04-alt1.src.rpm (w2T16.xzdio)
Comment 1 Dmitry V. Levin 2026-03-15 17:56:24 MSK
Использование "$dir_name/.gitattributes" не будет работать, если предварительно не был сделан git checkout; ожидается, что gear функционирует правильно без этого предположения.
Comment 2 Konstantin A Lepikhov (L.A. Kostis) 2026-03-15 22:56:40 MSK
(In reply to Dmitry V. Levin from comment #1)
> Использование "$dir_name/.gitattributes" не будет работать, если
> предварительно не был сделан git checkout; ожидается, что gear функционирует
> правильно без этого предположения.

gear функционирует в рамках git репозитория, какие там ожидания это как раз скорее вопрос к реализуемой функциональности.

да, данная модификация работает, если сделан git lfs install/git lfs checkout и только для объектов, которые копируются через .gear/rules. Для других случаев, например, если git lfs install/checkout сделан для репозитория, git archive отработает без каких-либо модификаций.

И теперь мы приблизились к вопросу - когда сборочница будет поддерживать lfs? Если эта поддержка ожидается, то данный патч закрывает все случаи.