diff --git a/.github/workflows/bootstrap b/.github/workflows/bootstrap new file mode 100644 index 0000000000..cd9d08a09d --- /dev/null +++ b/.github/workflows/bootstrap @@ -0,0 +1,57 @@ +name: Bootstrap Andaman and Subatomic (Fedora 37) + +on: + workflow_dispatch: + +jobs: + bootstrap: + strategy: + matrix: + version: ["37"] + arch: ["x86_64", "aarch64"] + fail-fast: true + runs-on: ${{ matrix.arch == 'aarch64' && 'ARM64' || 'ubuntu-latest' }} + container: + image: fedora:37 + options: --cap-add=SYS_ADMIN --privileged + steps: + - uses: actions/setup-go@v3 + with: + go-version: "^1.19" + + - name: Install repositories + run: | + sudo dnf install -y dnf-plugins-core + sudo dnf config-manager --add-repo https://github.com/terrapkg/subatomic-repos/raw/main/terra${{ matrix.version }}.repo + sudo dnf install -y mock createrepo_c rpm-build anda-mock-configs gcc curl wget git-core openssl-devel + - uses: actions/checkout@v3 + with: + repository: FyraLabs/subatomic + ref: bootstrap + - uses: actions-rs/toolchain@v1 + with: + toolchain: stable + - name: Install Anda + uses: actions-rs/cargo@v1 + with: + command: install + args: anda + + - name: Build Subatomic + run: anda build -c anda-37-${{ matrix.arch }} subatomic -p rpm + - name: Install Subatomic + run: sudo dnf install -y ./anda-build/rpm/rpms/subatomic-*.rpm + + - uses: actions/checkout@v3 + with: + repository: FyraLabs/anda + + - name: Build Andaman + run: anda build -c anda-37-${{ matrix.arch }} anda -p rpm + + - name: Upload to Subatomic + run: | + subatomic-cli upload --prune \ + --server https://subatomic.fyralabs.com \ + --token ${{ secrets.SUBATOMIC_TOKEN }} \ + terra${{ matrix.version }} anda-build/rpm/rpms/* diff --git a/anda/go/xyproto-env/golang-github-xyproto-env.spec b/anda/go/xyproto-env/golang-github-xyproto-env.spec index d046b01f2f..bb3e9b6a27 100644 --- a/anda/go/xyproto-env/golang-github-xyproto-env.spec +++ b/anda/go/xyproto-env/golang-github-xyproto-env.spec @@ -6,16 +6,6 @@ %global goipath github.com/xyproto/env Version: 2.0.0 -# REMOVE BEFORE SUBMITTING THIS FOR REVIEW -# --- -# New Fedora packages should use %%gometa -f, which makes the package -# ExclusiveArch to %%golang_arches_future and thus excludes the package from -# %%ix86. If the new package is needed as a dependency for another pacage, -# please consider removing that package from %%ix86 in the same way, instead of -# building more go packages for i686. If your package is not a leaf package, -# you'll need to coordinate the removal of the package's dependents first. -# --- -# REMOVE BEFORE SUBMITTING THIS FOR REVIEW %gometa -f %global common_description %{expand: diff --git a/anda/go/xyproto-env/v1/anda.hcl b/anda/go/xyproto-env/v1/anda.hcl new file mode 100644 index 0000000000..ea4f5641c0 --- /dev/null +++ b/anda/go/xyproto-env/v1/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "golang-github-xyproto-env.spec" + } +} diff --git a/anda/go/xyproto-env/v1/golang-github-xyproto-env.spec b/anda/go/xyproto-env/v1/golang-github-xyproto-env.spec new file mode 100644 index 0000000000..3728807777 --- /dev/null +++ b/anda/go/xyproto-env/v1/golang-github-xyproto-env.spec @@ -0,0 +1,48 @@ +# Generated by go2rpm 1.8.2 +%bcond_without check +%global debug_package %{nil} + +# https://github.com/xyproto/env +%global goipath github.com/xyproto/env +Version: 1.9.1 + +%gometa -f + +%global common_description %{expand: +Provide default values when fetching environment variables.} + +%global golicenses LICENSE +%global godocs README.md + +Name: golang-%{goname} +Release: 1%{?dist} +Summary: Provide default values when fetching environment variables + +License: BSD-3-Clause +URL: %{gourl} +Source: %{gosource} + +%description %{common_description} + +%gopkg + +%prep +%goprep + +%generate_buildrequires +%go_generate_buildrequires + +%build + +%install +%gopkginstall + +%if %{with check} +%check +%gocheck +%endif + +%gopkgfiles + +%changelog +%autochangelog diff --git a/anda/lib/apparmor/0001-All-current-versions-of-RHEL-and-Fedora-that-are-not.patch b/anda/lib/apparmor/0001-All-current-versions-of-RHEL-and-Fedora-that-are-not.patch new file mode 100644 index 0000000000..0041761b76 --- /dev/null +++ b/anda/lib/apparmor/0001-All-current-versions-of-RHEL-and-Fedora-that-are-not.patch @@ -0,0 +1,48 @@ +From 092ccc544c66f2a233bb074a5b3f9d9edcad2716 Mon Sep 17 00:00:00 2001 +From: Thomas Crider +Date: Thu, 17 Nov 2022 23:46:54 -0500 +Subject: [PATCH] All current versions of RHEL and Fedora that are not EOL (End + of Life) or ELS (Extended Lifecycle Support) currently only support systemd. + Legacy init scripts are not supported. Standard systemd installation should + be used. + +--- + parser/Makefile | 13 +++++-------- + 1 file changed, 5 insertions(+), 8 deletions(-) + +diff --git a/parser/Makefile b/parser/Makefile +index 15f9d97..64f5db6 100644 +--- a/parser/Makefile ++++ b/parser/Makefile +@@ -352,13 +352,10 @@ tests: apparmor_parser ${TESTS} + $(AAREOBJECT): FORCE + $(MAKE) -C $(AAREDIR) CFLAGS="$(EXTRA_CXXFLAGS)" + +-.PHONY: install-rhel4 +-install-rhel4: install-redhat +- + .PHONY: install-redhat +-install-redhat: +- install -m 755 -d $(DESTDIR)/etc/init.d +- install -m 755 rc.apparmor.$(subst install-,,$@) $(DESTDIR)/etc/init.d/apparmor ++install-redhat: install-systemd ++ install -m 755 -d $(SBINDIR) ++ ln -sf service $(SBINDIR)/rcapparmor + + .PHONY: install-suse + install-suse: install-systemd +@@ -389,9 +386,9 @@ DISTRO=$(shell if [ -f /etc/slackware-version ] ; then \ + if [ "$$(rpm --eval '0%{?suse_version}')" != "0" ] ; then \ + echo suse ;\ + elif [ "$$(rpm --eval '%{_host_vendor}')" = redhat ] ; then \ +- echo rhel4 ;\ ++ echo redhat ;\ + elif [ "$$(rpm --eval '0%{?fedora}')" != "0" ] ; then \ +- echo rhel4 ;\ ++ echo redhat ;\ + else \ + echo unknown ;\ + fi ;\ +-- +2.38.1 + diff --git a/anda/lib/apparmor/0001-fix-avahi-daemon-authselect-denial-in-fedora.patch b/anda/lib/apparmor/0001-fix-avahi-daemon-authselect-denial-in-fedora.patch new file mode 100644 index 0000000000..282e2e66c8 --- /dev/null +++ b/anda/lib/apparmor/0001-fix-avahi-daemon-authselect-denial-in-fedora.patch @@ -0,0 +1,27 @@ +From 334e335909b8faab63bf9289e63f9dc1a3c82a83 Mon Sep 17 00:00:00 2001 +From: Thomas Crider +Date: Thu, 17 Nov 2022 22:46:54 -0500 +Subject: [PATCH] fix avahi-daemon authselect denial in fedora + +Fixes this denial: + +type=AVC msg=audit(1668734812.755:243): apparmor="DENIED" operation="open" profile="avahi-daemon" name="/etc/authselect/nsswitch.conf" pid=1418 comm="avahi-daemon" requested_mask="r" denied_mask="r" fsuid=0 ouid=0FSUID="root" OUID="root" +--- + profiles/apparmor.d/usr.sbin.avahi-daemon | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/profiles/apparmor.d/usr.sbin.avahi-daemon b/profiles/apparmor.d/usr.sbin.avahi-daemon +index 010b385..da69072 100644 +--- a/profiles/apparmor.d/usr.sbin.avahi-daemon ++++ b/profiles/apparmor.d/usr.sbin.avahi-daemon +@@ -21,6 +21,7 @@ profile avahi-daemon /usr/{bin,sbin}/avahi-daemon { + /etc/avahi/hosts r, + /etc/avahi/services/ r, + /etc/avahi/services/*.service r, ++ /etc/authselect/nsswitch.conf r, + @{PROC}/@{pid}/fd/ r, + @{PROC}/1/environ r, + @{PROC}/cmdline r, +-- +2.38.1 + diff --git a/anda/lib/apparmor/anda.hcl b/anda/lib/apparmor/anda.hcl new file mode 100644 index 0000000000..9ea400dfb8 --- /dev/null +++ b/anda/lib/apparmor/anda.hcl @@ -0,0 +1,5 @@ +project "pkg" { + rpm { + spec = "apparmor.spec" + } +} diff --git a/anda/lib/apparmor/apparmor.preset b/anda/lib/apparmor/apparmor.preset new file mode 100644 index 0000000000..510175f40e --- /dev/null +++ b/anda/lib/apparmor/apparmor.preset @@ -0,0 +1 @@ +enable apparmor.service diff --git a/anda/lib/apparmor/apparmor.spec b/anda/lib/apparmor/apparmor.spec new file mode 100644 index 0000000000..b488e75b69 --- /dev/null +++ b/anda/lib/apparmor/apparmor.spec @@ -0,0 +1,340 @@ +%{?python_enable_dependency_generator} + +%bcond_with tests + +Name: apparmor +Version: 3.1.3 +Release: %autorelease +Summary: AppArmor userspace components + +%define baseversion %(echo %{version} | cut -d. -f-2) + +License: GPL-2.0 +URL: https://launchpad.net/apparmor +Source0: %{url}/%{baseversion}/%{version}/+download/%{name}-%{version}.tar.gz +Source1: apparmor.preset +Patch01: 0001-fix-avahi-daemon-authselect-denial-in-fedora.patch +Patch02: 0001-All-current-versions-of-RHEL-and-Fedora-that-are-not.patch + +BuildRequires: gcc +BuildRequires: automake +BuildRequires: libtool +BuildRequires: gcc-c++ +BuildRequires: libstdc++-static +BuildRequires: flex +BuildRequires: bison +BuildRequires: swig +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: %{_bindir}/podchecker +BuildRequires: %{_bindir}/pod2html +BuildRequires: gettext +BuildRequires: pam-devel +BuildRequires: httpd-devel +BuildRequires: systemd-rpm-macros +BuildRequires: gawk +BuildRequires: which +%if %{with tests} +BuildRequires: %{_bindir}/runtest +BuildRequires: %{_bindir}/prove +BuildRequires: perl(Locale::gettext) +BuildRequires: perl(Test::More) +%endif + +Provides: %{name}-profiles = %{version}-%{release} +Requires: %{name}-parser +Recommends: %{name}-utils +%{?systemd_requires} + +%description +AppArmor protects systems from insecure or untrusted processes by running +them in restricted confinement, while still allowing processes to share files, +exercise privilege and communicate with other processes. AppArmor is a Mandatory +Access Control (MAC) mechanism which uses the Linux Security Module (LSM) +framework. The confinement's restrictions are mandatory and are not bound to +identity, group membership, or object ownership. The protections provided are in +addition to the kernel's regular access control mechanisms (including DAC) and +can be used to restrict the superuser. + +%package libs +Summary: AppArmor library + +%description libs +This package contains the shared library used for making use of the AppArmor +profile and changehat functionality, as well as common log parsing routines. + +%package devel +Summary: AppArmor development libraries and header files +Requires: %{name}-libs%{?_isa} = %{version}-%{release} + +%description devel +This package contains AppArmor development libraries and header files. + +%package -n python3-apparmor +Summary: AppArmor Python3 utility library +Requires: python3-LibAppArmor = %{version}-%{release} +BuildArch: noarch + +%description -n python3-apparmor +This package provides the python interface to AppArmor. It is used for python +applications interfacing with AppArmor. + +%package -n python3-LibAppArmor +Summary: AppArmor library Python3 bindings +Requires: %{name}-libs%{?_isa} = %{version}-%{release} + +%description -n python3-LibAppArmor +This package contains Python3 module that contains the language bindings for +the AppArmor library, libapparmor, which were autogenerated via SWIG. + +%package profiles +Summary: AppArmor profiles +Provides: apparmor-profiles = %{version}-%{release} +BuildArch: noarch + +%description profiles +This package contains default AppArmor profiles. + +%package parser +Summary: AppArmor userlevel parser utility +Requires: python3-apparmor = %{version} +# Let it be the AppArmor metapackage +Provides: %{name} = %{version}-%{release} +Requires: %{name}-profiles = %{version}-%{release} +Recommends: %{name}-utils + +%description parser +The AppArmor Parser is a userlevel program that is used to load in +program profiles to the AppArmor Security kernel module. + +%package utils +Summary: AppArmor User-Level Utilities +Requires: python3-apparmor = %{version} +Requires: python3-notify2 + +%description utils +This package provides the aa-logprof, aa-genprof, aa-autodep, +aa-enforce, and aa-complain tools to assist with profile authoring. +Besides it provides the aa-unconfined server information tool. + +%package -n pam_apparmor +Summary: PAM module for AppArmor change_hat +Requires: %{name}-libs%{?_isa} = %{version}-%{release} +Requires: pam%{?_isa} + +%description -n pam_apparmor +This package provides the PAM module needed to declare various differing +confinement policies when starting PAM sessions by using the changehat +abilities exposed through libapparmor. + +%package -n mod_apparmor +Summary: AppArmor module for apache2 +Requires: %{name}-libs%{?_isa} = %{version}-%{release} +Requires: httpd%{?_isa} + +%description -n mod_apparmor +This package provides the Apache module needed to declare various differing +confinement policies when running virtual hosts in the webserver by using the +changehat abilities exposed through libapparmor. + +%prep +%autosetup -p1 + +%build +export PYTHON=%{__python3} +export PYTHON_VERSION=3 +export PYTHON_VERSIONS=python3 + +pushd libraries/libapparmor +./autogen.sh +%configure \ + --with-python \ + +%make_build +popd + +%make_build -C binutils +%make_build -C parser +%make_build -C profiles +%make_build -C utils +%make_build -C changehat/pam_apparmor +%make_build -C changehat/mod_apparmor +%make_build -C utils/vim + +%install +%make_install -C libraries/libapparmor +%make_install -C binutils +%make_install -C parser \ + APPARMOR_BIN_PREFIX=%{buildroot}%{_prefix}/lib/apparmor \ + SBINDIR=%{buildroot}%{_sbindir} +%make_install -C profiles +%make_install -C utils +%make_install -C changehat/pam_apparmor \ + SECDIR=%{buildroot}%{_libdir}/security +%make_install -C changehat/mod_apparmor +%make_install -C utils/vim + +install -Dm644 %{SOURCE1} %{buildroot}%{_presetdir}/70-apparmor.preset + +find %{buildroot} \( -name "*.a" -o -name "*.la" \) -delete + +%find_lang aa-binutils +%find_lang apparmor-parser +%find_lang apparmor-utils + +%if %{with tests} +%check +make -C libraries/libapparmor check +make -C binutils check +make -C parser check +# only running check-parser, as check-logprof (included in check) fails: +# https://gitlab.com/apparmor/apparmor/issues/36 +make -C profiles check-parser +make -C profiles check +# shutil.copytree has a regression +# https://gitlab.com/apparmor/apparmor/issues/62 +make -C utils check +%endif + +%post parser +%systemd_post %{name}.service + +%preun parser +%systemd_preun %{name}.service + +%postun parser +%systemd_postun_with_restart %{name}.service + +%files libs +%license LICENSE +%{_libdir}/libapparmor.so.* + +%files devel +%{_libdir}/libapparmor.so +%{_includedir}/aalogparse +%{_includedir}/sys/apparmor* +%{_libdir}/pkgconfig/libapparmor.pc +%{_mandir}/man2/aa_*.2.gz +%{_mandir}/man3/aa_*.3.gz + +%files -n python3-apparmor +%{python3_sitelib}/apparmor +%{python3_sitelib}/apparmor-*.egg-info + +%files -n python3-LibAppArmor +%{python3_sitearch}/LibAppArmor +%{python3_sitearch}/LibAppArmor-*.egg-info + +%files profiles +%dir %{_sysconfdir}/apparmor.d/ +%dir %{_sysconfdir}/apparmor.d/abi +%config(noreplace) %{_sysconfdir}/apparmor.d/abi/3.0 +%config(noreplace) %{_sysconfdir}/apparmor.d/abi/kernel-5.4-outoftree-network +%config(noreplace) %{_sysconfdir}/apparmor.d/abi/kernel-5.4-vanilla +%config(noreplace) %{_sysconfdir}/apparmor.d/php-fpm +%config(noreplace) %{_sysconfdir}/apparmor.d/samba-bgqd +%config(noreplace) %{_sysconfdir}/apparmor.d/samba-dcerpcd +%config(noreplace) %{_sysconfdir}/apparmor.d/samba-rpcd +%config(noreplace) %{_sysconfdir}/apparmor.d/samba-rpcd-classic +%config(noreplace) %{_sysconfdir}/apparmor.d/samba-rpcd-spoolss +%config(noreplace) %{_sysconfdir}/apparmor.d/zgrep +%dir %{_sysconfdir}/apparmor.d/abstractions +%config(noreplace) %{_sysconfdir}/apparmor.d/abstractions/* +%dir %{_sysconfdir}/apparmor.d/disable +%dir %{_sysconfdir}/apparmor.d/local +%dir %{_sysconfdir}/apparmor.d/tunables +%config(noreplace) %{_sysconfdir}/apparmor.d/tunables/* +%dir %{_sysconfdir}/apparmor.d/apache2.d +%config(noreplace) %{_sysconfdir}/apparmor.d/apache2.d/phpsysinfo +%config(noreplace) %{_sysconfdir}/apparmor.d/bin.* +%config(noreplace) %{_sysconfdir}/apparmor.d/sbin.* +%config(noreplace) %{_sysconfdir}/apparmor.d/usr.* +%config(noreplace) %{_sysconfdir}/apparmor.d/lsb_release +%config(noreplace) %{_sysconfdir}/apparmor.d/nvidia_modprobe +%config(noreplace) %{_sysconfdir}/apparmor.d/local/* +%dir %{_datadir}/apparmor/ +%{_datadir}/apparmor/extra-profiles + +%files parser -f apparmor-parser.lang -f aa-binutils.lang +%license parser/COPYING.GPL +%doc parser/README +%doc parser/*.[1-9].html +%doc common/apparmor.css +%doc parser/techdoc.pdf +%{_sbindir}/apparmor_parser +%{_bindir}/aa-enabled +%{_bindir}/aa-exec +%{_bindir}/aa-features-abi +%{_sbindir}/aa-teardown +%{_sbindir}/rcapparmor +%{_unitdir}/apparmor.service +%{_presetdir}/70-apparmor.preset +%{_prefix}/lib/apparmor +%dir %{_sysconfdir}/apparmor +%config(noreplace) %{_sysconfdir}/apparmor/parser.conf +%{_sharedstatedir}/apparmor +%{_mandir}/man1/aa-enabled.1.gz +%{_mandir}/man1/aa-exec.1.gz +%{_mandir}/man1/aa-features-abi.1.gz +%{_mandir}/man5/apparmor.d.5.gz +%{_mandir}/man5/apparmor.vim.5.gz +%{_mandir}/man7/apparmor.7.gz +%{_mandir}/man7/apparmor_xattrs.7.gz +%{_mandir}/man8/aa-teardown.8.gz +%{_mandir}/man8/apparmor_parser.8.gz + +%files utils -f apparmor-utils.lang +%doc utils/*.[0-9].html +%doc utils/vim/apparmor.vim.5.html +%doc common/apparmor.css +%dir %{_sysconfdir}/apparmor +%config(noreplace) %{_sysconfdir}/apparmor/easyprof.conf +%config(noreplace) %{_sysconfdir}/apparmor/logprof.conf +%config(noreplace) %{_sysconfdir}/apparmor/notify.conf +%config(noreplace) %{_sysconfdir}/apparmor/severity.db +%{_sbindir}/aa-audit +%{_sbindir}/aa-autodep +%{_sbindir}/aa-cleanprof +%{_sbindir}/aa-complain +%{_sbindir}/aa-decode +%{_sbindir}/aa-disable +%{_sbindir}/aa-enforce +%{_sbindir}/aa-genprof +%{_sbindir}/aa-logprof +%{_sbindir}/aa-mergeprof +%{_sbindir}/aa-notify +%{_sbindir}/aa-remove-unknown +%{_sbindir}/aa-status +%{_sbindir}/aa-unconfined +%{_sbindir}/apparmor_status +%{_bindir}/aa-easyprof +%dir %{_datadir}/apparmor +%{_datadir}/apparmor/easyprof +%{_datadir}/apparmor/apparmor.vim +%{_mandir}/man5/logprof.conf.5.gz +%{_mandir}/man8/aa-audit.8.gz +%{_mandir}/man8/aa-autodep.8.gz +%{_mandir}/man8/aa-cleanprof.8.gz +%{_mandir}/man8/aa-complain.8.gz +%{_mandir}/man8/aa-decode.8.gz +%{_mandir}/man8/aa-disable.8.gz +%{_mandir}/man8/aa-easyprof.8.gz +%{_mandir}/man8/aa-enforce.8.gz +%{_mandir}/man8/aa-genprof.8.gz +%{_mandir}/man8/aa-logprof.8.gz +%{_mandir}/man8/aa-mergeprof.8.gz +%{_mandir}/man8/aa-notify.8.gz +%{_mandir}/man8/aa-remove-unknown.8.gz +%{_mandir}/man8/aa-status.8.gz +%{_mandir}/man8/aa-unconfined.8.gz +%{_mandir}/man8/apparmor_status.8.gz + +%files -n pam_apparmor +%{_libdir}/security/pam_apparmor.so + +%files -n mod_apparmor +%{_libdir}/httpd/modules/mod_apparmor.so +%{_mandir}/man8/mod_apparmor.8.gz + +%changelog +%autochangelog diff --git a/anda/lib/geonames/anda.hcl b/anda/lib/geonames/anda.hcl new file mode 100644 index 0000000000..e42de9989f --- /dev/null +++ b/anda/lib/geonames/anda.hcl @@ -0,0 +1,5 @@ +project "pkg" { + rpm { + spec = "geonames.spec" + } +} diff --git a/anda/lib/geonames/geonames.spec b/anda/lib/geonames/geonames.spec new file mode 100644 index 0000000000..e11db786bf --- /dev/null +++ b/anda/lib/geonames/geonames.spec @@ -0,0 +1,66 @@ +%global forgeurl https://gitlab.com/ubports/development/core/geonames +%global commit 73c5dfca7d5a8935f7a9f8fe2656d24f8f8fe00a +%forgemeta + +Name: geonames +Version: 0.3.0 +Release: %autorelease +Summary: Parse and query the geonames database +License: GPLv3 +URL: https://gitlab.com/ubports/development/core/geonames +Source0: %{url}/-/archive/%commit/geonames-%commit.tar.gz + +BuildRequires: cmake +BuildRequires: gcc-c++ +BuildRequires: glib2-devel +BuildRequires: gtk-doc +BuildRequires: gettext + +%description +A library for parsing and querying a local copy of the geonames.org database. + +%package devel +Summary: Development files for %{name} +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description devel +The %{name}-devel package contains libraries and header files for +developing applications that use %{name}. + +%package doc +Summary: Documentation for %{name} +BuildArch: noarch + +%description doc +The %{name}-doc package contains documenation for %{name}. + +%prep +%autosetup -n geonames-%commit + +%build +%cmake +%cmake_build + +%install +%cmake_install +%find_lang %{name} + +%files -f %{name}.lang +%license COPYING COPYING.data +%{_libdir}/libgeonames.so.* + +%files devel +%dir %{_includedir}/geonames +%{_includedir}/geonames/geonames.h +%{_libdir}/libgeonames.so +%{_libdir}/pkgconfig/geonames.pc + +%files doc +%dir %{_datadir}/gtk-doc/html/geonames +%{_datadir}/gtk-doc/html/geonames/*.html +%{_datadir}/gtk-doc/html/geonames/*.png +%{_datadir}/gtk-doc/html/geonames/style.css +%{_datadir}/gtk-doc/html/geonames/geonames.devhelp2 + +%changelog +%autochangelog diff --git a/anda/lib/lomiri-app-launch/anda.hcl b/anda/lib/lomiri-app-launch/anda.hcl new file mode 100644 index 0000000000..7533fef637 --- /dev/null +++ b/anda/lib/lomiri-app-launch/anda.hcl @@ -0,0 +1,5 @@ +project "pkg" { + rpm { + spec = "lomiri-app-launch.spec" + } +} diff --git a/anda/lib/lomiri-app-launch/lomiri-app-launch.spec b/anda/lib/lomiri-app-launch/lomiri-app-launch.spec new file mode 100644 index 0000000000..9f13b9cf4f --- /dev/null +++ b/anda/lib/lomiri-app-launch/lomiri-app-launch.spec @@ -0,0 +1,80 @@ +%global forgeurl https://gitlab.com/ubports/development/core/lomiri-app-launch +%global commit d69c7a1339e0d227bebb500b6a1fe655095ff700 +%forgemeta + +Name: lomiri-app-launch +Version: 0.1.6 +Release: %autorelease +Summary: Provides the Lomiri App Launch user space daemon +License: GPLv3 +URL: https://gitlab.com/ubports/development/core/lomiri-app-launch +Source0: %{url}/-/archive/%commit/lomiri-app-launch-%commit.tar.gz + +BuildRequires: cmake +BuildRequires: pkgconfig +BuildRequires: g++ +BuildRequires: gcc +BuildRequires: pkgconfig(glib-2.0) +BuildRequires: pkgconfig(gobject-introspection-1.0) +BuildRequires: pkgconfig(lttng-ust) +BuildRequires: pkgconfig(gobject-2.0) +BuildRequires: pkgconfig(json-glib-1.0) +BuildRequires: pkgconfig(zeitgeist-2.0) +BuildRequires: pkgconfig(click-0.4) +BuildRequires: pkgconfig(systemd) +BuildRequires: pkgconfig(dbustest-1) +BuildRequires: pkgconfig(lttng-ust) +BuildRequires: pkgconfig(mirserver) +BuildRequires: pkgconfig(liblomiri-api) +BuildRequires: pkgconfig(dbus-1) + +# Not in pkgconfig but required +BuildRequires: properties-cpp-devel +BuildRequires: libcurl-devel +BuildRequires: systemd-rpm-macros + +%description +User space daemon for launching applications +Application launching system and associated utilities that is used to +launch applications in a standard and confined way. + +%package devel +Summary: Lomiri-app-launch development files +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description devel +This package contains development files needed for lomiri-app-launch. + +%prep +%autosetup -n lomiri-app-launch-%commit + +%build +sed -i 's/-Werror//' ./CMakeLists.txt + +# For some reason the macro of cmake fails on both clang and gcc +cmake -DLOMIRI_APP_LAUNCH_ARCH=%{_arch} -DENABLE_COVERAGE=OFF -DENABLE_TESTS=OFF -B redhat-linux-build -DCMAKE_INSTALL_PREFIX:PATH=/usr -DENABLE_MIRCLIENT=off -DUSE_SYSTEMD=ON +%cmake_build + +%install +%cmake_install + +%files +%license COPYING +%{_libdir}/liblomiri-app-launch.so.* +%{_libdir}/girepository-1.0/LomiriAppLaunch-0.typelib +%{_userunitdir}/lal-application-end.target +%{_bindir}/lomiri-app-* +%{_bindir}/lomiri-helper-* +%{_libexecdir}/lomiri-app-launch/ + +%files devel +%{_libdir}/liblomiri-app-launch.so +%{_libdir}/pkgconfig/*.pc +%{_datarootdir}/gir-1.0/LomiriAppLaunch-0.gir +%dir %{_includedir}/liblomiri-app-launch-0 +%{_includedir}/liblomiri-app-launch-0/*.h +%dir %{_includedir}/liblomiri-app-launch-0/lomiri-app-launch +%{_includedir}/liblomiri-app-launch-0/lomiri-app-launch/*.h + +%changelog +%autochangelog diff --git a/anda/lib/lomiri-ui-toolkit/anda.hcl b/anda/lib/lomiri-ui-toolkit/anda.hcl new file mode 100644 index 0000000000..82051ef868 --- /dev/null +++ b/anda/lib/lomiri-ui-toolkit/anda.hcl @@ -0,0 +1,5 @@ +project "pkg" { + rpm { + spec = "lomiri-ui-toolkit.spec" + } +} diff --git a/anda/lib/lomiri-ui-toolkit/lomiri-ui-toolkit.spec b/anda/lib/lomiri-ui-toolkit/lomiri-ui-toolkit.spec new file mode 100644 index 0000000000..d8aff6c3de --- /dev/null +++ b/anda/lib/lomiri-ui-toolkit/lomiri-ui-toolkit.spec @@ -0,0 +1,155 @@ +%global forgeurl https://gitlab.com/ubports/development/core/lomiri-ui-toolkit +%global commit 57b9c01a64b06ee57a0c73657e5a61f369911954 +%forgemeta + +Name: lomiri-ui-toolkit +Version: 1.3.5010 +Release: %autorelease +Summary: QML components to ease the creation of beautiful applications in QML for Lomiri + +License: LGPLv3 +URL: https://gitlab.com/ubports/development/core/lomiri-ui-toolkit +Source0: %{url}/-/archive/%commit/lomiri-ui-toolkit-%commit.tar.gz +Patch0: https://sources.debian.org/data/main/l/lomiri-ui-toolkit/1.3.5010%2Bdfsg-1/debian/patches/0002-fix-tests-on-qt-5.15.5.patch +Patch1: https://sources.debian.org/data/main/l/lomiri-ui-toolkit/1.3.5010%2Bdfsg-1/debian/patches/2003_stop-using-Ubuntu-fonts.patch + +BuildRequires: pkgconfig +BuildRequires: make +BuildRequires: g++ +BuildRequires: gcc +BuildRequires: pkgconfig(glib-2.0) +BuildRequires: pkgconfig(dbus-1) +BuildRequires: libXi-devel +Buildrequires: lttng-ust-devel +BuildRequires: qt5-doctools +BuildRequires: qt5-rpm-macros +BuildRequires: qt5-qtdeclarative +BuildRequires: qt5-qtbase-static +BuildRequires: qt5-qtbase-private-devel +BuildRequires: qt5-qtgraphicaleffects +BuildRequires: qt5-qtfeedback +BuildRequires: qt5-qtsystems-devel +BuildRequires: qt5-qtdeclarative-devel +BuildRequires: qt5-pim-devel +BuildRequires: python3-rpm-macros +BuildRequires: qt5-qtsvg-devel +Requires: qt5-qtgraphicaleffects +Requires: qt5-qtfeedback + +%description +This project consists of a set of QML components to ease the creation of +beautiful applications in QML for Lomiri. +QML alone lacks built-in components for basic widgets like Button, Slider, +Scrollbar, etc, meaning a developer has to build them from scratch. This +toolkit aims to stop this duplication of work, supplying beautiful components +ready-made and with a clear and consistent API. +These components are fully themeable so the look and feel can be easily +customized. Resolution independence technology is built in so UIs are scaled +to best suit the display. + +%package devel +Summary: Lomiri-ui-toolkit development files +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description devel +This package contains development files needed for lomiri-ui-toolkit. + +%package -n python3-lomiriuitoolkit +Summary: Python3 files for Lomiri-ui-toolkit +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description -n python3-lomiriuitoolkit +Python3 files for Lomiri-ui-toolkit. + +%package doc +Summary: Documentation for Lomiri-ui-toolkit +BuildArch: noarch + +%description doc +Documentation for Lomiri-ui-toolkit. + +%package examples +Summary: Examples for Lomiri-ui-toolkit +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description examples +Examples for Lomiri-ui-toolkit. + +%prep +%autosetup -n lomiri-ui-toolkit-%commit -p1 + +%build +%{qmake_qt5} 'CONFIG+=ubuntu-uitk-compat' 'CONFIG+=test' + +%make_build + +%install +%make_install INSTALL_ROOT=%{buildroot} STRIP=/bin/true +# Used by apicheck during tests only +rm -rf %{buildroot}%{_qt5_qmldir}/Extinct +# Has various issues +rm -rf %{buildroot}%{_datadir}/lomiri-ui-toolkit/doc/html + +%find_lang %{name} +%find_lang %{name}-gallery + +%files -f %{name}.lang +%license COPYING +%{_libdir}/libLomiriGestures.so.* +%{_libdir}/libLomiriMetrics.so.* +%{_libdir}/libLomiriToolkit.so.* +%dir %{_qt5_plugindir}/lomiri +%dir %{_qt5_plugindir}/lomiri/metrics +%{_qt5_plugindir}/lomiri/metrics/*.so +%dir %{_qt5_qmldir}/Lomiri +%{_qt5_qmldir}/Lomiri/Components/ +%{_qt5_qmldir}/Lomiri/Layouts/ +%{_qt5_qmldir}/Lomiri/Metrics/ +%{_qt5_qmldir}/Lomiri/PerformanceMetrics/ +%{_qt5_qmldir}/Lomiri/Test/ +%dir %{_qt5_qmldir}/Ubuntu +%{_qt5_qmldir}/Ubuntu/Components/ +%{_qt5_qmldir}/Ubuntu/Layouts/ +%{_qt5_qmldir}/Ubuntu/Metrics/ +%{_qt5_qmldir}/Ubuntu/PerformanceMetrics/ +%{_qt5_qmldir}/Ubuntu/Test/ + +%files devel +%{_bindir}/lomiri-* +%{_libdir}/libLomiriGestures.so +%{_libdir}/libLomiriMetrics.so +%{_libdir}/libLomiriToolkit.so +%{_libdir}/*.prl +%{_libdir}/pkgconfig/*.pc +%dir %{_libdir}/lomiri-ui-toolkit +%{_libdir}/lomiri-ui-toolkit/apicheck +%{_qt5_archdatadir}/mkspecs/modules/*.pri +%{_qt5_includedir}/LomiriGestures/ +%{_qt5_includedir}/LomiriMetrics/ +%{_qt5_includedir}/LomiriToolkit/ + +%files -n python3-lomiriuitoolkit +%dir %{python3_sitelib}/lomiriuitoolkit +%{python3_sitelib}/lomiriuitoolkit/*.py +%{python3_sitelib}/lomiriuitoolkit/_custom_proxy_objects/ +%{python3_sitelib}/lomiriuitoolkit/__pycache__/ +%{python3_sitelib}/lomiriuitoolkit/tests/ + +%files doc +%license COPYING.CC-BY-SA-3.0 +%{_qt5_docdir}/*.qch +%dir %{_datadir}/lomiri-ui-toolkit +%{_datadir}/lomiri-ui-toolkit/doc/ + +%files examples -f %{name}-gallery.lang +%dir %{_qt5_examplesdir}/lomiri-ui-toolkit +%dir %{_qt5_examplesdir}/lomiri-ui-toolkit/examples +%{_qt5_examplesdir}/lomiri-ui-toolkit/examples/calculator/ +%{_qt5_examplesdir}/lomiri-ui-toolkit/examples/customtheme/ +%{_qt5_examplesdir}/lomiri-ui-toolkit/examples/jokes/ +%{_qt5_examplesdir}/lomiri-ui-toolkit/examples/locale/ +%{_qt5_examplesdir}/lomiri-ui-toolkit/examples/lomiri-ui-toolkit-gallery/ +%{_qt5_examplesdir}/lomiri-ui-toolkit/examples/unit-converter/ + +%changelog +%autochangelog diff --git a/anda/lib/qt5-pim/qt5-pim.spec b/anda/lib/qt5-pim/qt5-pim.spec index b8b5f5b5e7..df5e774213 100644 --- a/anda/lib/qt5-pim/qt5-pim.spec +++ b/anda/lib/qt5-pim/qt5-pim.spec @@ -115,6 +115,8 @@ mkdir -p %{buildroot}%{_qt5_docdir}/html/ %{buildroot}%{_qt5_docdir}/qch/ mv doc/*.qch %{buildroot}%{_qt5_docdir}/qch/ cp -a doc/* %{buildroot}%{_qt5_docdir}/html/ +cp -a ./include/* %{buildroot}%{_qt5_includedir} + %files %license LICENSE.GPL2 LICENSE.GPL3 LICENSE.GPL3-EXCEPT %{_libdir}/libQt5Contacts.so.* diff --git a/anda/others/click/anda.hcl b/anda/others/click/anda.hcl new file mode 100644 index 0000000000..39ee38376b --- /dev/null +++ b/anda/others/click/anda.hcl @@ -0,0 +1,5 @@ +project "pkg" { + rpm { + spec = "click.spec" + } +} diff --git a/anda/others/click/click.spec b/anda/others/click/click.spec new file mode 100644 index 0000000000..6b620018c1 --- /dev/null +++ b/anda/others/click/click.spec @@ -0,0 +1,146 @@ +%global forgeurl https://gitlab.com/ubports/development/core/click +%global commit 5cb9cd655453bb158fc49e5501c98fe4170b25a8 +%forgemeta + +Name: click +Version: 0.5.0 +Release: %autorelease +Summary: Click is a app building method +License: LGPLv3 +URL: https://gitlab.com/ubports/development/core/click +Source0: %{url}/-/archive/%commit/click-%commit.tar.gz + +BuildRequires: automake libtool +BuildRequires: pkgconfig +BuildRequires: make +BuildRequires: g++ +BuildRequires: gcc +BuildRequires: pkgconfig(glib-2.0) +BuildRequires: pkgconfig(gobject-2.0) +BuildRequires: pkgconfig(gee-0.8) +BuildRequires: pkgconfig(json-glib-1.0) +BuildRequires: pkgconfig(properties-cpp) +BuildRequires: dbus-test-runner +BuildRequires: vala +BuildRequires: python3-devel +BuildRequires: python3-sphinx +BuildRequires: systemd-rpm-macros +BuildRequires: systemd + +%description +Click is a simplified packaging format that installs in a separate part of +the file system, suitable for third-party applications. + +%package devel +Summary: Click development files +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description devel +Development files and headers for Click. + +%package -n python3-lomiri-click +Summary: Python3 files for Click +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description -n python3-lomiri-click +Python3 files for Click. + +%package doc +Summary: Documentation files for Click +BuildArch: noarch + +%description doc +Provides HTML and Manpage (documentation) for Click. + +%prep +%autosetup -n click-%commit + +%build +NOCONFIGURE=1 \ +./autogen.sh + +%configure +%make_build + +%install +%make_install -- PYTHON_INSTALL_FLAGS="--root=%{buildroot}" + +# Create documentation +pushd doc +make man +mv _build/man/click.1 %{buildroot}%{_mandir}/man1/click.1 +make html +mkdir -p %{buildroot}%_pkgdocdir +mv _build/html %{buildroot}%_pkgdocdir +popd +mv README %{buildroot}%_pkgdocdir + +# Debian / debhelper stuff not needed +rm -rf %{buildroot}%{_bindir}/dh_click %{buildroot}%{_datarootdir}/debhelper %{buildroot}%{_datarootdir}/perl5 %{buildroot}%{_mandir}/man1/dh_click.1 + +%files +%license LICENSE +%{_sysconfdir}/dbus-1/system.d/com.lomiri.click.conf +%{_libdir}/libclick-0.4.so.* +%dir %{_libdir}/click +%{_libdir}/click/libclickpreload.so +%dir %{_libexecdir}/click +%{_libexecdir}/click/click-service +%{_datadir}/dbus-1/system-services/com.lomiri.click.service +%{_libdir}/girepository-1.0/Click-0.4.typelib + +%files devel +%dir %{_includedir}/click-0.4 +%{_includedir}/click-0.4/click.h +%{_libdir}/libclick-0.4.so +%{_libdir}/pkgconfig/click-0.4.pc +%{_datarootdir}/gir-1.0/Click-0.4.gir + +%files -n python3-lomiri-click +%dir %{_sysconfdir}/click +%dir %{_sysconfdir}/click/databases +%{_sysconfdir}/click/databases/*.conf +%dir %{_sysconfdir}/schroot +%dir %{_sysconfdir}/schroot/click +%{_sysconfdir}/schroot/click/fstab +%{_bindir}/click +%{_unitdir}/click-system-hooks.service +%{_userunitdir}/click-user-hooks.service +%dir %{python3_sitelib}/click_package +%{python3_sitelib}/click_package/*.py +%dir %{python3_sitelib}/click_package/tests +%{python3_sitelib}/click_package/tests/*.py +%dir %{python3_sitelib}/click_package/tests/integration +%{python3_sitelib}/click_package/tests/integration/*.py +%dir %{python3_sitelib}/click_package/tests/integration/__pycache__ +%{python3_sitelib}/click_package/tests/integration/__pycache__/*.pyc +%dir %{python3_sitelib}/click_package/tests/__pycache__ +%{python3_sitelib}/click_package/tests/__pycache__/*.pyc +%dir %{python3_sitelib}/click_package/commands +%{python3_sitelib}/click_package/commands/*.py +%dir %{python3_sitelib}/click_package/commands/__pycache__ +%{python3_sitelib}/click_package/commands/__pycache__/*.pyc +%dir %{python3_sitelib}/click_package/__pycache__ +%{python3_sitelib}/click_package/__pycache__/*.pyc +%dir %{python3_sitelib}/click-%{version}-py%{python3_version}.egg-info +%{python3_sitelib}/click-%{version}-py%{python3_version}.egg-info/*.txt +%{python3_sitelib}/click-%{version}-py%{python3_version}.egg-info/PKG-INFO + +%files doc +%{_mandir}/man1/click.1.gz +%dir %_pkgdocdir +%_pkgdocdir/README +%dir %_pkgdocdir/html +%_pkgdocdir/html/*.html +%_pkgdocdir/html/.buildinfo +%_pkgdocdir/html/*inv +%_pkgdocdir/html/*.js +%dir %_pkgdocdir/html/_sources +%_pkgdocdir/html/_sources/*.txt +%dir %_pkgdocdir/html/_static +%_pkgdocdir/html/_static/*.png +%_pkgdocdir/html/_static/*.css +%_pkgdocdir/html/_static/*.js + +%changelog +%autochangelog