summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIngar <ingar@telenet.be>2025-12-20 16:56:31 +0100
committerIngar <ingar@telenet.be>2025-12-20 16:56:31 +0100
commit896b1beeeefd8f8558afa453ba1c942929b05b57 (patch)
tree0c5039649a817fc8b6674ce54e34f3a453fe4c8f
parent5b6afdb2cc0643592f6568fb8eec67efeb10f528 (diff)
Updated to v1.11.0.HEADmaster
-rw-r--r--99-raspberrypi-dmaheap.rules (renamed from rpicam-apps.rules)0
-rw-r--r--PKGBUILD80
-rw-r--r--rpicam-apps-1.11.0-outputfilename.patch53
-rw-r--r--rpicam-apps-1.4.3-outputfilename.patch57
4 files changed, 87 insertions, 103 deletions
diff --git a/rpicam-apps.rules b/99-raspberrypi-dmaheap.rules
index 41fb331..41fb331 100644
--- a/rpicam-apps.rules
+++ b/99-raspberrypi-dmaheap.rules
diff --git a/PKGBUILD b/PKGBUILD
index c125c13..6a8f6ad 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,58 +1,46 @@
+# Maintainer: Mattia Procopio (astro.matto) <matto.astro at gmail dot com>
pkgname=rpicam-apps
-pkgver=1.5.2
+pkgver=1.11.0
pkgrel=1
-pkgdesc="Camera utilities for the Raspberry Pi"
-arch=('aarch64')
-url='https://github.com/raspberrypi/rpicam-apps'
+pkgdesc="This is a small suite of libcamera-based applications to drive the cameras on a Raspberry Pi platform."
+arch=(aarch64)
+url="https://github.com/raspberrypi/rpicam-apps"
+license=(LGPLv2
+ MIT
+ GPLv3
+ BSD2
+ BSD3)
+depends=(boost
+ libpisp
+ python-piexif
+ python-prctl)
+makedepends=(meson
+ python-jinja
+ python-sphinx)
source=(
- "https://github.com/raspberrypi/rpicam-apps/archive/refs/tags/v${pkgver}.tar.gz"
- "rpicam-apps.rules"
- "rpicam-apps-1.4.3-outputfilename.patch"
-)
+ "https://github.com/raspberrypi/rpicam-apps/archive/refs/tags/v${pkgver}.tar.gz"
+ "rpicam-apps-1.11.0-outputfilename.patch"
+ "99-raspberrypi-dmaheap.rules"
+ )
sha256sums=(
- "7af81158e04f16af379d0804b939c817fee01e1510c1e11249f998a4f4600c8d"
- "4045e41e24d8c3e247b667a66bc9eee13918f599f464003dde25ca55ed7bb995"
- "1e53aa6ea95ded5b6e6d28bac35f53b5725c06a99ab4664e37e88869dfe2e698"
-)
-depends=(
- boost
- libdrm
- libexif
- ffmpeg
- libcamera-rpi
- qt6-base
- qt6-tools
+ "342c0acf6bee07485bce76cb8a9774ef8a86dc2f5923d62601321a91a7b80baf"
+ "318590af9883d92408a687a34c69d01454c019703c1d0f49ef2ab2837ae90271"
+ "4045e41e24d8c3e247b667a66bc9eee13918f599f464003dde25ca55ed7bb995"
)
-makedepends=(meson ninja)
-optdepends=()
-prepare()
-{
+prepare() {
cd rpicam-apps-${pkgver}
- patch -Np1 -i "${srcdir}/rpicam-apps-1.4.3-outputfilename.patch"
- mkdir build
- arch-meson build \
- --buildtype=release \
- --wrap-mode default \
- -Denable_libav=enabled \
- -Denable_drm=enabled \
- -Denable_egl=enabled \
- -Denable_qt=enabled \
- -Denable_opencv=disabled \
- -Denable_tflite=disabled \
- -Denable_hailo=disabled \
- -Denable_imx500=false
+ patch -Np1 -i "${srcdir}/rpicam-apps-1.11.0-outputfilename.patch"
}
-build()
-{
- cd rpicam-apps-${pkgver}
- meson compile -C build
+build() {
+ cd $srcdir/rpicam-apps-$pkgver
+ meson setup build -Dprefix=/usr -Dwerror=false
}
-package()
-{
- install --mode=644 -D rpicam-apps.rules "${pkgdir}/etc/udev/rules.d/rpicam-apps.rules"
- cd rpicam-apps-${pkgver}
- DESTDIR="${pkgdir}" ninja -C build install
+package() {
+ mkdir -p $pkgdir/usr/lib/udev/rules.d/
+ cd $srcdir/rpicam-apps-$pkgver
+ DESTDIR="$pkgdir" ninja -C build install
+ install -m 755 $srcdir/../99-raspberrypi-dmaheap.rules $pkgdir/usr/lib/udev/rules.d/
}
diff --git a/rpicam-apps-1.11.0-outputfilename.patch b/rpicam-apps-1.11.0-outputfilename.patch
new file mode 100644
index 0000000..540c6d9
--- /dev/null
+++ b/rpicam-apps-1.11.0-outputfilename.patch
@@ -0,0 +1,53 @@
+--- rpicam-apps-original-1.11.0/core/still_options.hpp 2025-12-20 16:32:28.223308449 +0100
++++ rpicam-apps-1.11.0/core/still_options.hpp 2025-12-20 16:48:50.052707336 +0100
+@@ -27,9 +27,9 @@
+ ("framestart", value<uint32_t>(&v_->framestart)->default_value(0),
+ "Initial frame counter value for timelapse captures")
+ ("datetime", value<bool>(&v_->datetime)->default_value(false)->implicit_value(true),
+- "Use date format for output file names")
++ "Replace %s with date and time in output file names")
+ ("timestamp", value<bool>(&v_->timestamp)->default_value(false)->implicit_value(true),
+- "Use system timestamps for output file names")
++ "Replace %u with timestamp in output file names")
+ ("restart", value<unsigned int>(&v_->restart)->default_value(0),
+ "Set JPEG restart interval")
+ ("keypress,k", value<bool>(&v_->keypress)->default_value(false)->implicit_value(true),
+--- rpicam-apps-original-1.11.0/apps/rpicam_still.cpp 2025-12-20 16:32:28.221836546 +0100
++++ rpicam-apps-1.11.0/apps/rpicam_still.cpp 2025-12-20 16:47:29.557173395 +0100
+@@ -37,24 +37,28 @@
+
+ static std::string generate_filename(StillOptions const *options)
+ {
+- char filename[128];
+- std::string folder = options->Get().output; // sometimes "output" is used as a folder name
+- if (!folder.empty() && folder.back() != '/')
+- folder += "/";
++ // treat the output file name as a mask
++ char filename[2048];
+ if (options->Get().datetime)
+ {
++ // expects "%s" in the filename
+ std::time_t raw_time;
+ std::time(&raw_time);
+ char time_string[32];
+ std::tm *time_info = std::localtime(&raw_time);
+- std::strftime(time_string, sizeof(time_string), "%m%d%H%M%S", time_info);
+- snprintf(filename, sizeof(filename), "%s%s.%s", folder.c_str(), time_string, options->Get().encoding.c_str());
++ std::strftime(time_string, sizeof(time_string), "%Y%m%d%H%M%S", time_info);
++ snprintf(filename, sizeof(filename), options->Get().output.c_str(), time_string);
+ }
+ else if (options->Get().timestamp)
+- snprintf(filename, sizeof(filename), "%s%u.%s", folder.c_str(), (unsigned)time(NULL),
+- options->Get().encoding.c_str());
++ {
++ // expects "%u" in the filename
++ snprintf(filename, sizeof(filename), options->Get().output.c_str(), (unsigned)time(NULL));
++ }
+ else
++ {
++ // expects "%d" in the filename
+ snprintf(filename, sizeof(filename), options->Get().output.c_str(), options->Get().framestart);
++ }
+ filename[sizeof(filename) - 1] = 0;
+ return std::string(filename);
+ }
diff --git a/rpicam-apps-1.4.3-outputfilename.patch b/rpicam-apps-1.4.3-outputfilename.patch
deleted file mode 100644
index fc748ff..0000000
--- a/rpicam-apps-1.4.3-outputfilename.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-diff --git a/apps/rpicam_still.cpp b/apps/rpicam_still.cpp
-index 5721edc..5ce78ea 100644
---- a/apps/rpicam_still.cpp
-+++ b/apps/rpicam_still.cpp
-@@ -34,24 +34,28 @@ public:
-
- static std::string generate_filename(StillOptions const *options)
- {
-- char filename[128];
-- std::string folder = options->output; // sometimes "output" is used as a folder name
-- if (!folder.empty() && folder.back() != '/')
-- folder += "/";
-+ // treat the output file name as a mask
-+ char filename[2048];
- if (options->datetime)
- {
- std::time_t raw_time;
- std::time(&raw_time);
- char time_string[32];
- std::tm *time_info = std::localtime(&raw_time);
-- std::strftime(time_string, sizeof(time_string), "%m%d%H%M%S", time_info);
-- snprintf(filename, sizeof(filename), "%s%s.%s", folder.c_str(), time_string, options->encoding.c_str());
-+ std::strftime(time_string, sizeof(time_string), "%Y%m%d%H%M%S", time_info);
-+ // expects "%s" in the filename
-+ snprintf(filename, sizeof(filename), options->output.c_str(), time_string);
- }
- else if (options->timestamp)
-- snprintf(filename, sizeof(filename), "%s%u.%s", folder.c_str(), (unsigned)time(NULL),
-- options->encoding.c_str());
-+ {
-+ // expects "%u" in the filename
-+ snprintf(filename, sizeof(filename), options->output.c_str(), (unsigned)time(NULL));
-+ }
- else
-+ {
-+ // expects "%d" in the filename
- snprintf(filename, sizeof(filename), options->output.c_str(), options->framestart);
-+ }
- filename[sizeof(filename) - 1] = 0;
- return std::string(filename);
- }
-diff --git a/core/still_options.hpp b/core/still_options.hpp
-index 1d1fbe7..3338767 100644
---- a/core/still_options.hpp
-+++ b/core/still_options.hpp
-@@ -27,9 +27,9 @@ struct StillOptions : public Options
- ("framestart", value<uint32_t>(&framestart)->default_value(0),
- "Initial frame counter value for timelapse captures")
- ("datetime", value<bool>(&datetime)->default_value(false)->implicit_value(true),
-- "Use date format for output file names")
-+ "Replace %s with date and time in output file names")
- ("timestamp", value<bool>(&timestamp)->default_value(false)->implicit_value(true),
-- "Use system timestamps for output file names")
-+ "Replace %u with timestamp in output file names")
- ("restart", value<unsigned int>(&restart)->default_value(0),
- "Set JPEG restart interval")
- ("keypress,k", value<bool>(&keypress)->default_value(false)->implicit_value(true),