File linglong.yaml of Package linyaps
%global debug_package %{nil}
Name: linglong
Version: 1.9.13
Release: 2
Summary: Linglong is a Package Manager on Linux.
License: LGPL v3
URL: https://gitee.com/LFRon/linyaps-generic-linux
Source0: https://github.com/LFRon/linyaps-generic-linux/archive/refs/tags/1.9.13-2.zip
# ========== BuildRequires ==========
BuildRequires: cmake gcc-c++ gettext intltool systemd-devel sudo
# Qt on SUSE 与其他发行版命名不同,做条件适配
%if 0%{?suse_version}
BuildRequires: libqt5-qtbase-devel
# qdbusxml2cpp 在 openSUSE 路径通常为 /usr/lib64/qt5/bin/qdbusxml2cpp
%else
BuildRequires: qt5-qtbase-devel qt5-qtbase-private-devel
%endif
BuildRequires: glib2-devel nlohmann-json-devel ostree-devel yaml-cpp-devel libcap-devel
BuildRequires: gtest-devel libseccomp-devel elfutils-libelf-devel
# SUSE 通常不提供 glibc-static/libstdc++-static,SUSE 下移除
%if !0%{?suse_version}
BuildRequires: glibc-static libstdc++-static
%endif
BuildRequires: libcurl-devel openssl-devel libcap-devel
BuildRequires: gtest-devel gmock-devel
# ========== Runtime Requires ==========
Requires: linglong-bin = %{version}-%{release}
Requires: desktop-file-utils linglong-box fuse-overlayfs
# shadow 在 SUSE,shadow-utils 在其他
%if 0%{?suse_version}
Requires: shadow
%else
Requires: shadow-utils
%endif
Requires: glib2 shared-mime-info systemd
Requires: google-noto-sans-mono-fonts wqy-zenhei-fonts
Recommends: erofs-fuse erofs-utils
%description
Linyaps is a secondary package manager on Linux.It could run apps with stable and fast container powered by Linyaps-box on Linux.
%package -n linglong-bin
Summary: Linglong package manager
%if 0%{?suse_version}
Requires: linglong-box google-noto-sans-mono-fonts wqy-zenhei-fonts shadow
%else
Requires: linglong-box google-noto-sans-mono-fonts wqy-zenhei-fonts shadow-utils
%endif
%description -n linglong-bin
Linyaps package management command line tool.
%package -n linglong-builder
Summary: Linglong build tools
Requires: linglong-box linglong-bin = %{version}-%{release} git
%description -n linglong-builder
This Linyaps sub-package is a tool that makes it easy to build applications and dependencies.
%prep
%autosetup -p1 -n linyaps-generic-linux-%{version}-1
%define _debugsource_template %{nil}
%build
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX:PATH=%{_prefix} \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DINCLUDE_INSTALL_DIR:PATH=%{_includedir} \
-DLIB_INSTALL_DIR:PATH=%{_libdir} \
-DSYSCONF_INSTALL_DIR:PATH=%{_sysconfdir} \
-DSHARE_INSTALL_PREFIX:PATH=%{_datadir} \
-DBUILD_SHARED_LIBS=OFF \
-DCPM_LOCAL_PACKAGES_ONLY=ON \
-DENABLE_LINGLONG_INSTALLER=ON \
-DLINGLONG_EXPORT_PATH=apps/share \
-DQT_VERSION_MAJOR=5 \
-DQt5DBus_QDBUSXML2CPP_EXECUTABLE=/usr/lib64/qt5/bin/qdbusxml2cpp ..
%make_build
%install
cd build
%make_install INSTALL_ROOT=%{buildroot}
# ========== systemd 脚本宏适配 ==========
%if 0%{?suse_version}
%post -n linglong-bin
%service_add_post org.deepin.linglong.PackageManager.service
%preun -n linglong-bin
%service_del_preun org.deepin.linglong.PackageManager.service
%postun -n linglong-bin
%service_del_postun org.deepin.linglong.PackageManager.service
%else
%post -n linglong-bin
%systemd_post org.deepin.linglong.PackageManager.service
%preun -n linglong-bin
%systemd_preun org.deepin.linglong.PackageManager.service
%postun -n linglong-bin
%systemd_postun_with_restart org.deepin.linglong.PackageManager.service
%endif
%files
%doc README.md
%license LICENSE
%exclude %{_libdir}/cmake/linglong-*/*.cmake
%files -n linglong-bin
%{_sysconfdir}/profile.d/*
%{_sysconfdir}/X11/Xsession.d/*
%{_bindir}/ll-cli
%{_bindir}/llpkg
# 使用通用宏避免硬编码路径
%{_libexecdir}/%{name}/ll-package-manager
%{_libexecdir}/%{name}/ll-session-helper
%{_libexecdir}/%{name}/ld-cache-generator
%{_libexecdir}/%{name}/font-cache-generator
%{_libexecdir}/%{name}/ll-dialog
%{_libexecdir}/%{name}/ll-init
%{_libexecdir}/%{name}/dialog/99-linglong-permission
%{_datadir}/bash-completion/completions/ll-cli
%{_datadir}/dbus-1/system-services/*.service
%{_datadir}/dbus-1/system.d/*.conf
%{_datadir}/polkit-1/actions/org.deepin.linglong.PackageManager1.policy
%{_datadir}/%{name}/config.yaml
%{_datadir}/%{name}/export-dirs.json
%{_datadir}/mime/packages/*
%{_datadir}/zsh/*
%{_datadir}/icons/*
%{_datadir}/applications/*
%{_datadir}/locale/*
# systemd/unit、preset、generators 使用宏
%{_unitdir}/*.service
%{_userunitdir}/*
%{_presetdir}/*.preset
%{_systemdgeneratordir}/*
%{_userunitdir}/../system-environment-generators/*
%{_userunitdir}/../user-generators/*
# sysusers/tmpfiles 使用宏
%{_sysusersdir}/*.conf
%{_tmpfilesdir}/*.conf
# 容器/脚本
%{_prefix}/lib/%{name}/container/*
%{_prefix}/lib/%{name}/generate-xdg-data-dirs.sh
%files -n linglong-builder
%{_bindir}/ll-builder
%{_libexecdir}/%{name}/fetch-dsc-source
%{_libexecdir}/%{name}/fetch-git-source
%{_libexecdir}/%{name}/fetch-file-source
%{_libexecdir}/%{name}/fetch-archive-source
%{_libexecdir}/%{name}/app-conf-generator
%{_libexecdir}/%{name}/builder/helper/*.sh
%{_datadir}/bash-completion/completions/ll-builder
%{_datadir}/%{name}/builder/templates/*.yaml
%{_datadir}/%{name}/builder/uab/*
%changelog
* Sat Nov 08 2025 Packager <you@example.com> - 1.9.13-2
- Adapt spec for openSUSE Leap 15.6:
- switch shadow-utils -> shadow on SUSE
- drop glibc-static/libstdc++-static on SUSE
- use libqt5-qtbase-devel and systemd service macros on SUSE
- replace hard-coded systemd paths with macros