diff --git a/anda/apps/mpv/mpv-nightly.spec b/anda/apps/mpv/mpv-nightly.spec index 5bb5d079fa..a70281ecd9 100644 --- a/anda/apps/mpv/mpv-nightly.spec +++ b/anda/apps/mpv/mpv-nightly.spec @@ -1,6 +1,6 @@ -%global commit 27fb4c474f5ca850470cd07dfc789ba8bf94b35c +%global commit a46ce9e28cd97f7280c085649a79f85aa1d0fe70 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20240312 +%global commit_date 20240325 %global ver v0.37.0 Name: mpv-nightly diff --git a/anda/games/prismlauncher-nightly/prismlauncher-nightly.spec b/anda/games/prismlauncher-nightly/prismlauncher-nightly.spec index ac209a0bd5..f48a233d6f 100644 --- a/anda/games/prismlauncher-nightly/prismlauncher-nightly.spec +++ b/anda/games/prismlauncher-nightly/prismlauncher-nightly.spec @@ -1,13 +1,13 @@ %global real_name prismlauncher %global nice_name PrismLauncher -%global commit 3b0564f098c49be2fd3082928c91440c73df4d80 +%global commit df0280f52b68f4352d8da711136609c16ce4db7b %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global libnbtplusplus_commit a5e8fd52b8bf4ab5d5bcc042b2a247867589985f %global quazip_commit 6117161af08e366c37499895b00ef62f93adc345 %global tomlplusplus_commit 7eb2ffcc09f8e9890dc0b77ff8ab00fc53b1f2b8 -%global commit_date 20240311 +%global commit_date 20240325 %global snapshot_info %{commit_date}.%{shortcommit} %bcond_without qt6 diff --git a/anda/games/prismlauncher-qt5-nightly/prismlauncher-qt5-nightly.spec b/anda/games/prismlauncher-qt5-nightly/prismlauncher-qt5-nightly.spec index 4c7ae5ea53..6f29e162ca 100644 --- a/anda/games/prismlauncher-qt5-nightly/prismlauncher-qt5-nightly.spec +++ b/anda/games/prismlauncher-qt5-nightly/prismlauncher-qt5-nightly.spec @@ -1,13 +1,13 @@ %global real_name prismlauncher %global nice_name PrismLauncher -%global commit 3b0564f098c49be2fd3082928c91440c73df4d80 +%global commit df0280f52b68f4352d8da711136609c16ce4db7b %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global libnbtplusplus_commit a5e8fd52b8bf4ab5d5bcc042b2a247867589985f %global quazip_commit 6117161af08e366c37499895b00ef62f93adc345 %global tomlplusplus_commit 7eb2ffcc09f8e9890dc0b77ff8ab00fc53b1f2b8 -%global commit_date 20240311 +%global commit_date 20240325 %global snapshot_info %{commit_date}.%{shortcommit} %bcond_with qt6 diff --git a/anda/langs/nim/nim-nightly/nim-nightly.spec b/anda/langs/nim/nim-nightly/nim-nightly.spec index 3596813834..054e300e4b 100644 --- a/anda/langs/nim/nim-nightly/nim-nightly.spec +++ b/anda/langs/nim/nim-nightly/nim-nightly.spec @@ -1,11 +1,12 @@ %global csrc_commit 561b417c65791cd8356b5f73620914ceff845d10 -%global commit 78c834dd76f273d8813247647531005a1f7db1a6 +%global commit 33902d9dbb65fbfdfbd6e3b2a34c6e19eccb762f +%global shortcommit %(c=%{commit}; echo ${c:0:7}) %global ver 2.1.1 -%global commit_date 20240312 +%global commit_date 20240322 %global debug_package %nil Name: nim-nighlty -Version: %ver^%commit_date.%commit +Version: %ver^%commit_date.%shortcommit Release: 1%?dist Summary: Imperative, multi-paradigm, compiled programming language License: MIT and BSD @@ -36,6 +37,7 @@ order of priority). This package provides various tools, which help Nim programmers. +%ifarch x86_64 %package doc Summary: Documentation for Nim programming language BuildArch: noarch @@ -46,12 +48,15 @@ order of priority). This package provides documentation and reference manual for the language and its standard library. +%endif + %prep %autosetup -n Nim-%commit # hack cp /usr/bin/mold /usr/bin/ld + %build export CFLAGS="${CFLAGS} -Ofast" export CXXFLAGS="${CXXFLAGS} -Ofast" @@ -66,13 +71,18 @@ nimBuildCsourcesIfNeeded CFLAGS="${CFLAGS} -Ic_code -w -O3 -fno-strict-aliasing nim c --noNimblePath --skipUserCfg --skipParentCfg --hints:off -d:danger koch.nim koch boot -d:release -d:nimStrictMode --lib:lib +%ifarch x86_64 koch docs & +%endif (cd lib; nim c --app:lib -d:danger -d:createNimRtl -t:-fPIE -l:-pie nimrtl.nim) & koch tools --skipUserCfg --skipParentCfg --hints:off -d:release -t:-fPIE -l:-pie & nim c -d:danger -t:-fPIE -l:-pie nimsuggest/nimsuggest.nim & wait +%ifarch x86_64 sed -i '/ - 1.9.3^fcc383d89994241f1b73fe4f85ef38528c135e2e-1 -- Initial Package. +%autochangelog diff --git a/anda/langs/nim/nim/nim.spec b/anda/langs/nim/nim/nim.spec index 8a2ce0873e..bbf7132f31 100644 --- a/anda/langs/nim/nim/nim.spec +++ b/anda/langs/nim/nim/nim.spec @@ -3,7 +3,7 @@ Name: nim Version: 2.0.2 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Imperative, multi-paradigm, compiled programming language License: MIT and BSD URL: https://nim-lang.org @@ -13,8 +13,7 @@ Source2: nimgrep.1 Source3: nimble.1 Source4: nimsuggest.1 BuildRequires: gcc mold git gcc-c++ nodejs openssl-devel pkgconfig(bash-completion) gc-devel pcre-devel -Requires: redhat-rpm-config gcc -Conflicts: choosenim +Requires: gcc %description @@ -32,7 +31,7 @@ order of priority). This package provides various tools, which help Nim programmers. - +%ifarch x86_64 %package doc Summary: Documentation for Nim programming language BuildArch: noarch @@ -43,10 +42,13 @@ order of priority). This package provides documentation and reference manual for the language and its standard library. +%endif + %prep %autosetup -n nim-%{version} + %build export CFLAGS="${CFLAGS} -Ofast" export CXXFLAGS="${CXXFLAGS} -Ofast" @@ -58,20 +60,24 @@ export PATH="$(pwd):$(pwd)/bin:${PATH}" mold -run nim c -d:danger koch.nim mold -run koch boot -d:useLinenoise -t:-fPIE -l:-pie -d:release -d:nativeStacktrace -d:useGnuReadline +%ifarch x86_64 mold -run koch docs & +%endif (cd lib && nim c --app:lib -d:createNimRtl -d:release nimrtl.nim) & mold -run koch tools -t:-fPIE -l:-pie & mold -run nim c -t:-fPIE -l:-pie -d:release nimsuggest/nimsuggest.nim & wait +%ifarch x86_64 sed -i '/= %{gst_version} +BuildRequires: gstreamer1-plugins-base-devel >= %{gst_version} BuildRequires: make +BuildRequires: meson BuildRequires: nasm -# Replace the stub package -Obsoletes: noopenh264 < 1:0 - %description OpenH264 is a codec library which supports H.264 encoding and decoding. It is suitable for use in real time applications such as WebRTC. @@ -31,9 +38,7 @@ suitable for use in real time applications such as WebRTC. %package devel Summary: Development files for %{name} -Requires: %{name}%{?_isa} = %{version}-%{release} -# Replace the stub package -Obsoletes: noopenh264-devel < 1:0 +Requires: %{name}%{?_isa} = %{openh264_version}-%{release} %description devel The %{name}-devel package contains libraries and header files for @@ -42,7 +47,7 @@ developing applications that use %{name}. %package -n mozilla-openh264 Summary: H.264 codec support for Mozilla browsers -Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}%{?_isa} = %{openh264_version}-%{release} Requires: mozilla-filesystem%{?_isa} %description -n mozilla-openh264 @@ -50,6 +55,18 @@ The mozilla-openh264 package contains a H.264 codec plugin for Mozilla browsers. +%package -n gstreamer1-plugin-openh264 +Version: %{gst_version} +Release: 2%{?dist} +Summary: GStreamer H.264 plugin + +%description -n gstreamer1-plugin-openh264 +GStreamer is a streaming media framework, based on graphs of elements which +operate on media data. + +This package contains the H.264 plugin. + + %prep %setup -q @@ -57,6 +74,12 @@ browsers. tar -xf %{S:1} mv gmp-api-%{commit1} gmp-api +# Extract gst-plugins-bad-free archive +tar -xf %{S:2} +pushd gst-plugins-bad-%{gst_version} +%patch2 -p1 +popd + %build # Update the makefile with our build options @@ -73,6 +96,20 @@ make %{?_smp_mflags} # ... then build the mozilla plugin make plugin %{?_smp_mflags} +# ... and finally build the gstreamer plugin against the previously built +# openh264 libraries +pushd gst-plugins-bad-%{gst_version} +CFLAGS="%{build_cflags} -I`pwd`/../codec/api" \ +CXXFLAGS="%{build_cflags} -I`pwd`/../codec/api" \ +LDFLAGS="%{build_ldflags} -L`pwd`/.." \ +%meson \ + --auto-features=disabled \ + -D package-name="Fedora gstreamer1-plugin-openh264 package" \ + -D package-origin="http://www.openh264.org/" \ + -D openh264=enabled +%meson_build +popd + %install %make_install @@ -88,32 +125,71 @@ pref("media.gmp-gmpopenh264.version", "system-installed"); EOF mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/profile.d -cat > $RPM_BUILD_ROOT%{_sysconfdir}/profile.d/gmpopenh264.sh << 'EOF' -if [[ ":$MOZ_GMP_PATH:" != *":%{_libdir}/mozilla/plugins/gmp-gmpopenh264/system-installed:"* ]]; then - MOZ_GMP_PATH="${MOZ_GMP_PATH}${MOZ_GMP_PATH:+:}%{_libdir}/mozilla/plugins/gmp-gmpopenh264/system-installed" - export MOZ_GMP_PATH -fi -EOF - -mkdir -p $RPM_BUILD_ROOT%{_datadir}/fish/vendor_conf.d -cat > $RPM_BUILD_ROOT%{_datadir}/fish/vendor_conf.d/gmpopenh264.fish << 'EOF' -set -x --path MOZ_GMP_PATH $MOZ_GMP_PATH -set dir %{_libdir}/mozilla/plugins/gmp-gmpopenh264/system-installed -if not contains $dir $MOZ_GMP_PATH - set -p MOZ_GMP_PATH $dir -end -set -e dir +cat > $RPM_BUILD_ROOT%{_sysconfdir}/profile.d/gmpopenh264.sh << EOF +MOZ_GMP_PATH="${MOZ_GMP_PATH}${MOZ_GMP_PATH:+:}%{_libdir}/mozilla/plugins/gmp-gmpopenh264/system-installed" +export MOZ_GMP_PATH EOF # Remove static libraries rm $RPM_BUILD_ROOT%{_libdir}/*.a +# Install the gstreamer plugin +pushd gst-plugins-bad-%{gst_version} +%meson_install + +# Register as an AppStream component to be visible in the software center +# +# NOTE: It would be *awesome* if this file was maintained by the upstream +# project, translated and installed into the right place during `make install`. +# +# See http://www.freedesktop.org/software/appstream/docs/ for more details. +# +mkdir -p $RPM_BUILD_ROOT%{_datadir}/appdata +cat > $RPM_BUILD_ROOT%{_datadir}/appdata/gstreamer-openh264.appdata.xml < + + + gstreamer-openh264 + CC0-1.0 + GStreamer Multimedia Codecs - H.264 + Multimedia playback for H.264 + +

+ This addon includes a codec for H.264 playback and encoding. +

+

+ These codecs can be used to encode and decode media files where the + format is not patent encumbered. +

+

+ A codec decodes audio and video for playback or editing and is also + used for transmission or storage. + Different codecs are used in video-conferencing, streaming media and + video editing applications. +

+
+ http://gstreamer.freedesktop.org/ + https://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer + http://gstreamer.freedesktop.org/documentation/ + http://www.gnome.org/friends/ + +
+EOF + +# Remove unwanted gst-plugins-bad files +rm -rf $RPM_BUILD_ROOT%{_bindir}/gst-transcoder-1.0 +rm -rf $RPM_BUILD_ROOT%{_includedir}/gstreamer-1.0/ +rm -rf $RPM_BUILD_ROOT%{_libdir}/pkgconfig/gstreamer-*.pc +rm -rf $RPM_BUILD_ROOT%{_libdir}/libgst*.so* +rm -rf $RPM_BUILD_ROOT%{_datadir}/gstreamer-1.0/ +popd + %files %license LICENSE %doc README.md %{_libdir}/libopenh264.so.7 -%{_libdir}/libopenh264.so.%{version} +%{_libdir}/libopenh264.so.%{openh264_version} %files devel %{_includedir}/wels/ @@ -127,9 +203,10 @@ rm $RPM_BUILD_ROOT%{_libdir}/*.a %dir %{_libdir}/firefox/defaults/pref %{_libdir}/firefox/defaults/pref/gmpopenh264.js %{_libdir}/mozilla/plugins/gmp-gmpopenh264/ -%dir %{_datadir}/fish -%dir %{_datadir}/fish/vendor_conf.d -%{_datadir}/fish/vendor_conf.d/gmpopenh264.fish + +%files -n gstreamer1-plugin-openh264 +%{_datadir}/appdata/*.appdata.xml +%{_libdir}/gstreamer-1.0/libgstopenh264.so %changelog diff --git a/anda/lib/pqmarble/anda.hcl b/anda/lib/pqmarble/anda.hcl index 9c60fdd668..62e5e5282b 100644 --- a/anda/lib/pqmarble/anda.hcl +++ b/anda/lib/pqmarble/anda.hcl @@ -2,4 +2,7 @@ project pkg { rpm { spec = "pqmarble.spec" } + labels { + nightly = "1" + } } diff --git a/anda/lib/pqmarble/pqmarble.spec b/anda/lib/pqmarble/pqmarble.spec index eb487fb3c0..5b2ba97968 100644 --- a/anda/lib/pqmarble/pqmarble.spec +++ b/anda/lib/pqmarble/pqmarble.spec @@ -1,8 +1,10 @@ %global commit f240b2ec7d5cdacb8fdcc553703420dc5101ffdb +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global commit_date 20240310 %global ver 2.0.0 Name: pqmarble -Version: %ver^%commit +Version: %ver^%commit_date.%shortcommit Release: 1%{?dist} Summary: My GTK library License: GPL-3.0 diff --git a/anda/lib/pqmarble/update.rhai b/anda/lib/pqmarble/update.rhai index 7e4fd7d2f3..82f1add4a1 100644 --- a/anda/lib/pqmarble/update.rhai +++ b/anda/lib/pqmarble/update.rhai @@ -1,4 +1,8 @@ -let req = get("https://gitlab.gnome.org/api/v4/projects/20662/repository/branches/master").json(); -rpm.global("commit", req.commit.id); -let meson = get("https://gitlab.gnome.org/raggesilver/marble/-/raw/master/meson.build"); -rpm.global("ver", find("(?m)^\\s+version:\\s*'(.+)',$", meson, 1)); +if filters.contains("nightly") { + rpm.global("commit", gitlab_commit("gitlab.gnome.org", "20662", "master")); + if rpm.changed() { + let meson = get("https://gitlab.gnome.org/raggesilver/marble/-/raw/master/meson.build"); + rpm.global("ver", find("(?m)^\\s+version:\\s*'(.+)',$", meson, 1)); + rpm.global("commit_date", date()); + } +} diff --git a/anda/lib/tdlib/tdlib-nightly.spec b/anda/lib/tdlib/tdlib-nightly.spec index 893b777dd2..0e643993f4 100644 --- a/anda/lib/tdlib/tdlib-nightly.spec +++ b/anda/lib/tdlib/tdlib-nightly.spec @@ -1,8 +1,10 @@ -%global commit d0ff90bb19a235d9357f0874b0a62306e40d90b8 -%global ver 1.8.25 -%global commit_date 240219 +%global commit 586bc784138042d2710168cd0b29f5dd6d415f45 +%global ver 1.8.26 +%global commit_date 20240219 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) + Name: tdlib-nightly -Version: %ver^%commit_date.%commit +Version: %ver^%commit_date.%shortcommit Release: 1%?dist License: BSL-1.0 URL: https://github.com/tdlib/td diff --git a/anda/lib/tdlib/update.rhai b/anda/lib/tdlib/update.rhai index 005873e8d5..0e2cafa333 100644 --- a/anda/lib/tdlib/update.rhai +++ b/anda/lib/tdlib/update.rhai @@ -1,7 +1,7 @@ if filters.contains("nightly") { rpm.global("commit", gh_commit("tdlib/td")); if rpm.changed() { - let v = find("\nproject\\(TDLib\\s+VERSION\\s+([\\d.]+)\\s+", gh_rawfile("tdlib/td", "master", "CMakeLists.txt")), 1); + let v = find("\nproject\\(TDLib\\s+VERSION\\s+([\\d.]+)\\s+", gh_rawfile("tdlib/td", "master", "CMakeLists.txt"), 1); rpm.global("ver", v); rpm.release(); } diff --git a/anda/system/avstplg/avstplg.spec b/anda/system/avstplg/avstplg.spec index 79e4cbb141..c5bd26eec6 100644 --- a/anda/system/avstplg/avstplg.spec +++ b/anda/system/avstplg/avstplg.spec @@ -1,5 +1,5 @@ %global commit 7cb289b6466b662fdf9f7d7ccc9f3c08a7dc0cac -%global commit_date 240219 +%global commit_date 20240219 %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global debug_package %{nil} %define __os_install_post %{nil} diff --git a/anda/system/nvidia-patch/nvidia-patch.spec b/anda/system/nvidia-patch/nvidia-patch.spec index 639577ceec..e8f83e7901 100644 --- a/anda/system/nvidia-patch/nvidia-patch.spec +++ b/anda/system/nvidia-patch/nvidia-patch.spec @@ -1,7 +1,7 @@ %global debug_package %{nil} %global commit 564c0661a942f7163cb2cfa6cb1b14b4bcff3a30 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 240218 +%global commit_date 20240218 %global patches %{_datadir}/src/nvidia-patch diff --git a/anda/tools/yt-dlp/anda.hcl b/anda/tools/yt-dlp/anda.hcl new file mode 100644 index 0000000000..b585ff28c4 --- /dev/null +++ b/anda/tools/yt-dlp/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "yt-dlp-nightly.spec" + } + labels { + nightly = "1" + } +} diff --git a/anda/tools/yt-dlp/update.rhai b/anda/tools/yt-dlp/update.rhai new file mode 100644 index 0000000000..8bfba97bcf --- /dev/null +++ b/anda/tools/yt-dlp/update.rhai @@ -0,0 +1,8 @@ +if filters.contains("nightly") { + rpm.global("commit", gh_commit("yt-dlp/yt-dlp")); + if rpm.changed() { + rpm.global("ver", gh("yt-dlp/yt-dlp")); + rpm.global("commit_date", date()); + rpm.release(); + } +} diff --git a/anda/tools/yt-dlp/yt-dlp-nightly.spec b/anda/tools/yt-dlp/yt-dlp-nightly.spec new file mode 100644 index 0000000000..d74f8b3340 --- /dev/null +++ b/anda/tools/yt-dlp/yt-dlp-nightly.spec @@ -0,0 +1,127 @@ +#bcond_without tests +%global commit e5d4f11104ce7ea1717a90eea82c0f7d230ea5d5 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global commit_date 20240325 +%global ver 2024.03.10 + +Name: yt-dlp-nightly +Version: %ver^%commit_date.%shortcommit +Release: 1%?dist +Summary: A command-line program to download videos from online video platforms + +License: Unlicense +URL: https://github.com/yt-dlp/yt-dlp +Source: %url/archive/%commit.tar.gz +# License of the specfile +Source: https://src.fedoraproject.org/rpms/yt-dlp/raw/rawhide/f/yt-dlp.spec.license + +BuildArch: noarch + +BuildRequires: python3-devel + +%if %{with tests} +# Needed for %%check +BuildRequires: %{py3_dist pytest} +%endif + +# Needed for docs +BuildRequires: pandoc +BuildRequires: make + +# ffmpeg-free is now available in Fedora. +Recommends: /usr/bin/ffmpeg +Recommends: /usr/bin/ffprobe + +Provides: yt-dlp +Conflicts: yt-dlp + +Suggests: python3dist(keyring) + +%global _description %{expand: +yt-dlp is a command-line program to download videos from many different online +video platforms, such as youtube.com. The project is a fork of youtube-dl with +additional features and fixes.} + +%description %{_description} + +%package bash-completion +Summary: Bash completion for yt-dlp +Requires: %{name} = %{version}-%{release} +Requires: bash-completion +Supplements: (%{name} and bash-completion) + +Provides: yt-dlp-bash-completion +Conflicts: yt-dlp-bash-completion + +%description bash-completion +Bash command line completion support for %{name}. + +%package zsh-completion +Summary: Zsh completion for %{name} +Requires: %{name} = %{version}-%{release} +Requires: zsh +Supplements: (%{name} and zsh) + +Provides: yt-dlp-zsh-completion +Conflicts: yt-dlp-zsh-completion + +%description zsh-completion +Zsh command line completion support for %{name}. + +%package fish-completion +Summary: Fish completion for %{name} +Requires: %{name} = %{version}-%{release} +Requires: fish +Supplements: (%{name} and fish) + +Provides: yt-dlp-fish-completion +Conflicts: yt-dlp-fish-completion + +%description fish-completion +Fish command line completion support for %{name}. + +%prep +%autosetup -n yt-dlp-%commit + +# Remove unnecessary shebangs +find -type f ! -executable -name '*.py' -print -exec sed -i -e '1{\@^#!.*@d}' '{}' + +# Relax version constraints +sed -i 's@"\(requests\|urllib3\|websockets\)>=.*"@"\1"@' pyproject.toml + +%generate_buildrequires +%pyproject_buildrequires -r + +%build +# Docs and shell completions +make yt-dlp.1 completion-bash completion-zsh completion-fish + +# Docs and shell completions are also included in the wheel. +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files yt_dlp + +%check +%if %{with tests} +# See https://github.com/yt-dlp/yt-dlp/blob/master/devscripts/run_tests.sh +%pytest -m 'not download' +%endif + +%files -f %{pyproject_files} +%{_bindir}/yt-dlp +%{_mandir}/man1/yt-dlp.1* +%doc README.md +%license LICENSE + +%files bash-completion +%{bash_completions_dir}/yt-dlp + +%files zsh-completion +%{zsh_completions_dir}/_yt-dlp + +%files fish-completion +%{fish_completions_dir}/yt-dlp.fish + +%changelog +%autochangelog