Containers may fail to start if the bundle directory contains residual
files or conflicts from previous run.
Signed-off-by: reddevillg <reddevillg@gmail.com>
1. ll-builder use current directory as project directory.
2. Project yaml file(aka linglong.yaml) must reside within project
directory or its subdirectories.
3. User can use -f option to specfy a project yaml file.
4. ll-builder will attempt to load project yaml file in the following
order from the project root directory:
- linglong.<arch>.yaml (architecture-specific)
- linglong.yaml (generic)
Signed-off-by: reddevillg <reddevillg@gmail.com>
If the current RunContext contains innerBinds, self-adjust mount must be
enabled; otherwise, execution may fail due to missing mount points.
Signed-off-by: reddevillg <reddevillg@gmail.com>
1. apply extension environment
2. apply app and extension permission binds
3. run ldconfig with -X option in cache generate phase
4. introduce dummy extension which is enabled by default
Signed-off-by: reddevillg <reddevillg@gmail.com>
update-desktop-database and update-mime-database will generate system files in
specify a directory. these files do not belong to the applications and should not be
printed in the log.
Introduce RunContext to unify runtime layer resolution, requiring
changes across the builder, CLI, and PM.
Signed-off-by: reddevillg <reddevillg@gmail.com>
1. Added a new --repo option to the install command to specify a
repository for installation
2. Enhanced repository management with priority-based package resolution
3. Implemented methods to get, promote and recover repository priorities
4. Updated package installation logic to respect repository selection
5. Improved error handling for module not found cases
6. Added ReferenceWithRepo struct to track package references with their
source repositories
Added implementation for JSONPrinter::printMessage method to output
messages
in JSON format. The method serializes the message as a JSON object with
a
"message" property. This enhances the JSON output capability by properly
handling messages alongside other data types.
This change optimizes the version filtering process by:
1. Replacing QString::fromStdString() with direct c_str() calls to
eliminate unnecessary string conversions
2. Directly updating existing entries instead of creating temporary maps
3. Adding proper checks when updating package repositories to prevent
overwriting existing entries
1. Added repository field to search parameters requiring specifying
repos to search
2. Modified search implementation to support searching in multiple
repositories
3. Restructured search results to group packages by repository source
4. Added --repo option to the CLI search command
5. Updated display format to show repository information in search
results
6. Improved filtering logic to work with the repository-grouped package
structure
7. Added PackageManager1PruneResult type to separate it from search
results
1. Remove automatic priority calculation when adding new repos
2. Remove automatic priority adjustment when setting default repo
3. Allow multiple repositories to have the same priority value
4. Use stable sort when displaying repositories to maintain order for
equal priorities
5. Set new repositories' default priority to 0 instead of calculated
value
refactor: 简化仓库优先级管理
1. 移除添加新仓库时的自动优先级计算
2. 移除设置默认仓库时的自动优先级调整
3. 允许多个仓库具有相同的优先级值
4. 使用稳定排序显示仓库,以维持优先级相同时的原始顺序
5. 设置新仓库的默认优先级为0,取代之前的计算值
Enhance CLI repository information display with dynamic column widths
and URL truncation:
1. Calculate maximum lengths for name, URL, and alias columns
dynamically
2. Limit URL display length to 100 characters with ellipsis for longer
URLs
3. Use calculated widths instead of fixed column widths for better
alignment
4. Truncate long URLs with "..." to improve readability
style: 改进仓库信息显示格式
增强命令行界面仓库信息显示,使用动态列宽和 URL 截断:
1. 动态计算名称、URL 和别名列的最大长度
2. 限制 URL 显示长度为 100 个字符,超长时添加省略号
3. 使用计算出的宽度而非固定列宽,以获得更好的对齐效果
4. 为长 URL 添加"..."截断,提高可读性
This change removes the VersionRange class which was marked with a TODO
comment
as "currently not used". Also removes the unused PreRelease struct from
version.cpp that was marked as having "no practical use". Deleted
associated
test files and updated CMake configuration files to reflect these
removals.
refactor: 移除未使用的 VersionRange 类及相关代码
此更改移除了标记为"当前未使用"的 VersionRange 类。同时删除了 version.cpp
中被标记为"无实际用途"的未使用 PreRelease 结构体。删除了相关的测试文件,
并更新了 CMake 配置文件以反映这些移除。
Added validation to ensure the content command can only be used with
application layers by checking the layer kind. If the layer is not an
app,
an error message is displayed to inform the user that only app content
viewing is supported. This prevents potential issues when trying to view
content of non-application layers.
fix: 限制内容命令仅用于应用类型层
添加验证以确保内容命令只能用于应用层,方法是检查层的类型。
如果该层不是应用类型,则显示错误消息,通知用户只支持查看应用内容。
这可以防止尝试查看非应用层内容时可能出现的问题。
Define error codes to identify different errors.
The cli displays error information to users based on error codes.
Add -v,--verbose option to display detailed error information.
Signed-off-by: ice909 <gaochang1@uniontech.com>
project source: https://github.com/Yelp/dumb-init
We need an init process to forwarding signal and cleaning orphaned zombie processes.
In above cases, it is more convenent that replacing bash with dumb-init
Signed-off-by: ComixHe <heyuming@deepin.org>
When copying relative symlinks pointing to existing directories, they were incorrectly turned into empty folders.
Issue: https://github.com/OpenAtom-Linyaps/linyaps/issues/1039
Signed-off-by: ice909 <gaochang1@uniontech.com>
Previously, packages with the same id but different module values were incorrectly treated as the same package, causing some to be lost.
This fix ensures that (id, module) is used as the unique key, preserving all distinct packages while still filtering by version.
Signed-off-by: ice909 <gaochang1@uniontech.com>
Option --loader=<app_loader> can be used to run app without container
involved. With custom loader, only app's layer will be exported. When
custom loader get started, environment variable LINGLONG_UAB_APPROOT
is the app directory.
The default priority for the stable repository is 0.
When adding a new repository, its priority will be set to the current minimum priority minus 100.
If the new repository is set as the default repository, its priority will be set to the current maximum priority plus 100.
Added the set-priority subcommand to allow manual specification of priorities (duplicates are not allowed).
Provide "build depends" and "depends" for apt build extension, build
phase seperate into build phase and prepare phase. "build depends"
to be installed in build environment before build phase starting, and
preserve in overlayfs. "depends" to be installed in prepare phase, and
will be merged to apps output.
Previously, the `App` field in the `ll-cli ps` command output displayed the full package name (e.g., `main:org.dde.calendar/5.14.7.3/x86_64`).
This has been updated to display only the AppID portion (e.g., `org.dde.calendar`).
Do not update ostree repo config when open ostree repo,otherwise it will cause repo config permission error
and only supports updating ostree repositories through ll-cli repo command.
If the project directory and ~/.cache/linglong-builder are not on the same device (file system), exporting the UAB cannot create hard links and can only copy files.
issue: https://github.com/OpenAtom-Linyaps/linyaps/issues/811
Added a new `--all` flag to the search command to display all versions of packages.
By default, search results will only show the latest version of each package.
Add the --alias option to set aliases for the 'll-cli repo add' and 'll-builder repo add' commands.
So update, remove, and set-default also need to pass alias instead of name.