Compare commits

..

16 Commits

Author SHA1 Message Date
Arjan van de Ven 2b6b813c0a update packages file 2025-02-27 22:27:51 +00:00
Arjan van de Ven ec9fa3b778 update packages file 2025-02-25 19:01:23 +00:00
Arjan van de Ven e473e2bce8 update packages file 2025-02-18 18:30:50 +00:00
Arjan van de Ven d5dc76d31e update packages file 2025-02-13 18:17:21 +00:00
Arjan van de Ven f825b6b7fc update packages file 2025-02-12 07:05:01 +00:00
Arjan van de Ven 4627d7a47d update packages file 2025-02-04 18:21:27 +00:00
Arjan van de Ven 8b2e15fa59 update packages file 2025-01-28 17:50:13 +00:00
Arjan van de Ven ec3903192a update packages file 2025-01-24 00:07:48 +00:00
Arjan van de Ven da6bc31e4a update packages file 2025-01-17 14:49:29 +00:00
Arjan van de Ven c360ffe52c update packages file 2025-01-09 19:17:51 +00:00
Arjan van de Ven f092f66d8d update packages file 2024-12-19 06:03:26 +00:00
Brett T. Warden 704e8c90b8 Cleanup parsing of version from specfile in catchup targets
Make sure we only parse %{version} one time while doing a catchup.
2024-12-05 17:11:40 -08:00
Brett T. Warden 1ca80a16a3 Implement catchup targets
Implement a new target 'catchup' that will backport upstream commits
from the current package version to HEAD.
Implement a new target 'catchup-<commit|tag>' that will backport
upstream commits up to the target, as resolvable by git. This powers
'catchup'.
Rework the target 'backport-<commit>' to clone and use the upstream
git repository instead of using GitHub URLs. This also simplifies the
resolution of targets to full commit hashes, as needed to ensure unique
patch names and entries in 'series'.

'make catchup' will backport all the patches to catch this package up to
the upstream's HEAD
'make catchup-v5.0' will backport all the patches to catch this package
up to tag "v5.0" upstream.
'make catchup-ffdcba' will backport all the patches between this
package's current version and the upstream commit ffdcba.
'make backport-ffdcba' will backport ONLY upstream commit ffdcba.

All targets will produce patches named "backport-<commit>.patch", where
<commit> is the full SHA1 commit hash, regardless of whether you used an
abbreviated hash (or a tag, for catchup-%).

Patches are added to 'series' in chronological order, unless they're
already anywhere in that file.
2024-12-05 16:00:31 -08:00
Arjan van de Ven 27e359bda0 update packages file 2024-12-05 19:57:20 +00:00
Brett T. Warden 3db02dd609 Implement backport-<commit> target
For packages with a GitHub repo configured in options.conf, allow
downloading and applying backport patches via the 'backport-<commit>'
target. If given an abbreviated commit ID, it will still create a
backport-<commit>.patch file with the full commit hash, plus add it (if
it does not already exist) to the end of the series file.

Because this handles a single commit at a time, this should be wrappable
by a future Makefile target that applies individual commits to catch up
to a target tag, for example.
2024-12-02 16:13:06 -08:00
Arjan van de Ven 5866d7afbf update packages file 2024-11-25 21:15:54 +00:00
2 changed files with 109 additions and 6 deletions
+72
View File
@@ -582,6 +582,78 @@ cloc: $(SRPMFILE)
@$(MOCK) --clean --scrub=chroot --uniqueext=$(PKG_NAME)
cat results/cloc.txt
#help catchup: Backport the commits from the current version to the upstream HEAD (not release).
#help Only works if giturl is defined and the current package version can be mapped to a git tag.
catchup:
$(MAKE) catchup-HEAD
#help catchup-<commit|tag>: Backport the commits from the current version to the specified commit or tag.
#help Only works if giturl is defined and the current package version can be mapped to a git tag.
catchup-%:
@target=$*; \
giturl=$$(grep -E '^giturl\s*=\s*\S+' options.conf | sed 's/giturl\s*=\s*//' 2>/dev/null); \
if [[ -z "$${giturl}" ]]; then \
echo "Error: giturl not defined in options.conf"; \
exit 1; \
fi; \
mkdir -p results; \
if [[ -d results/$(PKG_NAME) ]]; then \
echo "Reusing existing repository..."; \
git -C results/$(PKG_NAME) fetch origin; \
else \
echo "Cloning upstream repository..."; \
git -C results clone "$${giturl}" $(PKG_NAME); \
fi; \
if ! git -C results/$(PKG_NAME) rev-parse --verify --quiet "$${target}" >/dev/null; then \
echo "Error: Target commit/tag $${target} not found"; \
exit 1; \
fi; \
version=$$(rpm -q --qf '%{VERSION}\n' --specfile $(SPECFILE) | head -1); \
echo "Version: $${version}"; \
current_tag=$$(git -C results/$(PKG_NAME) tag --list | grep -E "^($(PKG_NAME)-)?v?$${version}$$") || { \
echo "Error: No tag found for current package version"; \
exit 1; \
}; \
echo "Catching up from $${current_tag} to $${target}"; \
for commit in $$(git -C results/$(PKG_NAME) log --reverse --pretty=oneline $${current_tag}..$${target} | cut -d' ' -f1); do \
$(MAKE) backport-$${commit}; \
done;
#help backport-<commit>: Retrieve a commit from the upstream git repository and save it as a backport patch.
#help The giturl is read from options.conf.
backport-%:
@commit=$*; \
echo "Backporting commit: $${commit}"; \
giturl=$$(grep -E '^giturl\s*=\s*\S+' options.conf | sed 's/giturl\s*=\s*//' 2>/dev/null); \
if [[ -z "$${giturl}" ]]; then \
echo "Error: giturl not defined in options.conf"; \
exit 1; \
fi; \
mkdir -p results; \
if [[ -d results/$(PKG_NAME) ]]; then \
echo "Reusing existing repository..."; \
git -C results/$(PKG_NAME) fetch origin; \
else \
echo "Cloning upstream repository..."; \
git -C results clone "$${giturl}" $(PKG_NAME); \
fi; \
full_commit=$$(git -C results/$(PKG_NAME) show --pretty=oneline $${commit} 2>/dev/null | head -1 | cut -d' ' -f 1); \
if [[ -z "$${full_commit}" ]]; then \
echo "Error: Commit for $${commit} not found"; \
exit 1; \
fi; \
patch=backport-$${full_commit}.patch; \
git -C results/$(PKG_NAME) format-patch -1 --stdout $${full_commit} > $${patch}; \
if [[ -s $${patch} ]]; then \
echo "$${patch} created"; \
grep -qE "^$${patch}$$" series 2>/dev/null || echo "$${patch}" >> series; \
else \
rm -f $${patch}; \
echo "Error: Failed to create backport patch"; \
exit 1; \
fi \
.PHONY: whatrequires
#help whatrequires: Output a list of packages that directly depend on this one,
#help showing the subpackage-level breakdown. Each line of output has the format
+37 -6
View File
@@ -180,6 +180,7 @@ R-Ryacas
R-SGP
R-SGPdata
R-SQUAREM
R-SimDesign
R-Sleuth2
R-SnowballC
R-SparseM
@@ -232,6 +233,7 @@ R-bayesplot
R-bazar
R-bbmle
R-bdsmatrix
R-beepr
R-beeswarm
R-bench
R-benchr
@@ -809,6 +811,7 @@ R-readr
R-readstata13
R-readxl
R-recipes
R-reformulas
R-registry
R-relimp
R-rematch
@@ -871,6 +874,7 @@ R-rsvg
R-runjags
R-rversions
R-rvest
R-rworldmap
R-s2
R-sampling
R-sandwich
@@ -916,6 +920,7 @@ R-sp
R-spData
R-spam
R-sparkline
R-sparsevctrs
R-spatstat
R-spatstat.core
R-spatstat.data
@@ -1204,6 +1209,7 @@ boost
borgbackup
boto3
botocore
bottom
bovo
box2d
bpftool
@@ -1234,6 +1240,7 @@ buildreq-qmake
buildreq-qt6
buildreq-scons
buildx
bwidget
byobu
bz2file
bzip2
@@ -1369,6 +1376,7 @@ compat-taglib-soname1
compat-tbb-soname2
compat-tiff-soname5
compat-wlroots-soname11
compat-yaml-cpp-soname6
component
compose
configobj
@@ -1583,6 +1591,7 @@ fsearch
fuse
fwupd
fwupd-efi
game-music-emu
garcon
gawk
gbinder-python
@@ -1749,6 +1758,7 @@ gstreamer-vaapi
gtk+
gtk-doc
gtk-frdp
gtk-layer-shell
gtk-vnc
gtk-xfce-engine
gtk3
@@ -1842,6 +1852,7 @@ ipe
iperf
ipmitool
ipp-crypto
ipp-usb
iproute2
ipset
iptables
@@ -1854,6 +1865,7 @@ irrlicht
irrlichtmt
irssi
isa-l
isl
iso-codes
isodate
isomd5sum
@@ -2260,6 +2272,7 @@ libmbim
libmediaart
libmemcached
libmicrohttpd
libmikmod
libmnl
libmodbus
libmodplug
@@ -2380,6 +2393,7 @@ libva
libva-intel-driver
libva-utils
libvdpau
libversion
libvirt
libvirt-dbus
libvirt-glib
@@ -2433,6 +2447,7 @@ linux-ltscurrent
linux-ltsprev
linux-preempt-rt
linux-tools
linuxcnc
linuxptp
lksctp-tools
lldpd
@@ -2500,7 +2515,6 @@ mesa
mesa-demos
meson
messagelib
meta-c-basic
meta-desktop-gnome
meta-os-core
meta-os-core-plus
@@ -2523,6 +2537,7 @@ mingw-crt
mingw-gcc
minicom
minimodem
minizip-ng
minuet
mixer-tools
mkfontdir
@@ -2712,6 +2727,7 @@ paho.mqtt.c
paho.mqtt.cpp
palapeli
pam-python
pam_u2f
pam_wrapper
pandas
pandoc
@@ -3586,7 +3602,6 @@ perl-prefork
perl-strictures
pesign
phonon
phonon-vlc
phoronix-test-suite
php
php-APCu
@@ -3646,7 +3661,6 @@ php-zmq
picmi
picocom
pidgin
pidgin-sipe
pigeonhole
pigz
pim-data-exporter
@@ -3734,6 +3748,7 @@ pynvim
pyotherside
pyotp
pyparted
pypi-Yapps
pypi-absl_py
pypi-abydos
pypi-accelerate
@@ -3915,6 +3930,7 @@ pypi-decorator
pypi-deepmerge
pypi-deepspeed
pypi-dep_logic
pypi-dependency_groups
pypi-deprecated
pypi-deprecation
pypi-devpi_client
@@ -3977,6 +3993,7 @@ pypi-falcon
pypi-fasteners
pypi-fastimport
pypi-fastjsonschema
pypi-fido2
pypi-filecache
pypi-filelock
pypi-findpython
@@ -4152,7 +4169,6 @@ pypi-jupyterlab_server
pypi-jupyterlab_widgets
pypi-jupyterlite_core
pypi-jupyterlite_pyodide_kernel
pypi-jupyterlite_sphinx
pypi-jxmlease
pypi-kcc
pypi-kerberos
@@ -4444,6 +4460,7 @@ pypi-pyroute2.nftables
pypi-pyroute2.nslink
pypi-pyrsistent
pypi-pysaml2
pypi-pyscard
pypi-pyscss
pypi-pyserial
pypi-pysnow
@@ -4499,6 +4516,7 @@ pypi-rapidfuzz
pypi-rapidfuzz_capi
pypi-rcssmin
pypi-rdflib
pypi-re2
pypi-readme_renderer
pypi-readtime
pypi-recommonmark
@@ -4530,6 +4548,7 @@ pypi-rfc3987
pypi-rich
pypi-rjsmin
pypi-rlpycairo
pypi-roman_numerals_py
pypi-rope
pypi-routes
pypi-rpds_py
@@ -4704,6 +4723,7 @@ pypi-typogrify
pypi-tzdata
pypi-tzlocal
pypi-ua_parser
pypi-ua_parser_builtins
pypi-uc_micro_py
pypi-ufolib2
pypi-uharfbuzz
@@ -4724,6 +4744,7 @@ pypi-uvloop
pypi-venusian
pypi-verboselogs
pypi-versioneer
pypi-versioningit
pypi-vine
pypi-virtualenv
pypi-volatile
@@ -4783,6 +4804,7 @@ pypi-yarg
pypi-yarl
pypi-yattag
pypi-ypy_websocket
pypi-yubikey_manager
pypi-zabbix_api
pypi-zc.lockfile
pypi-zeroconf
@@ -4804,6 +4826,7 @@ pypi-zope.security
pypi-zope.testing
pypi-zope.testrunner
pypi-zopfli
pystring
python
python-digitalocean
python-distutils-extra
@@ -4973,6 +4996,7 @@ s3fs-fuse
salt
samba
samtools
sane-airscan
sane-backends
sassc
sbc
@@ -4985,6 +5009,7 @@ scour
scowl
screen
scummvm
scx
sddm
sddm-kcm
seahorse
@@ -5096,7 +5121,9 @@ tallow
tar
taskwarrior
tbb
tbtools
tcl
tclx
tcpdump
tdb
tecla
@@ -5151,6 +5178,7 @@ udisks2
udunits
uget
uhttpmock
uhubctl
umockdev
unbundle
unibilium
@@ -5165,7 +5193,6 @@ usb-modeswitch-data
usbredir
usbutils
userspace-rcu
usrbinjava
usrbinvi
usrsctp
utf8proc
@@ -5193,7 +5220,6 @@ virglrenderer
virt-manager
virt-viewer
vkd3d
vlc
volk
volume_key
vpnc
@@ -5225,6 +5251,7 @@ wlroots
wmctrl
woff2
wol
wolfssl
wpa_supplicant
wsjtx
wslu
@@ -5311,6 +5338,8 @@ xrandr
xrdb
xrdp
xrestop
xsane
xscorch
xscreensaver
xsel
xset
@@ -5337,6 +5366,7 @@ yelp-tools
yelp-xsl
yq
ytnef
yyjson
zabbix
zathura
zathura-pdf-poppler
@@ -5344,6 +5374,7 @@ zenity
zimg
zip
zlib
zlib-ng
znc
zopfli
zsh