Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
207 commits
Select commit Hold shift + click to select a range
5d51d74
Added packaging metadata used by OBS as of 2016-08-18 (except debian.…
jimklimov Aug 18, 2016
b89e4e0
Seems OBS mkpac.sh wants a file named "control" in any debian-pkg dir…
jimklimov Aug 18, 2016
b977a05
Update packaging files to install DMF data files
jimklimov Aug 18, 2016
a5bc5b5
Update OBS packaging to deliver bin/nut-scanner-reindex-dmfsnmp
jimklimov Aug 18, 2016
660ab27
OBS nut.dsc : comment away DEBTRANSFORM of teh tarball
jimklimov Aug 18, 2016
be2c769
OBS nut.spec : use common tarball filename pattern
jimklimov Aug 18, 2016
16e4e72
OBS : try to call autogen.sh before configuring sources
jimklimov Aug 18, 2016
65463e4
nut.spec : make asciidoc a common dependency
jimklimov Aug 18, 2016
2b136c5
OBS nut.spec : fix LUA requirement at == 5.1 (not >= 5.1)
jimklimov Aug 18, 2016
2531f49
OBS nut.spec : make manpages optional
jimklimov Aug 18, 2016
e5390d3
Build Requires python-pycparser
jimklimov Aug 18, 2016
b059871
OBS: Try to rectify package numbering and dependencies of sub-package…
jimklimov Aug 19, 2016
3439192
RPM/DEB : deliver the sorted symlinks in packages
jimklimov Sep 14, 2016
7615bd3
nut.spec : fix mixed spaces vs tabs
jimklimov Sep 14, 2016
3eb5042
debian.nut-snmp.install debian.libnutscan1.install : fix conflict for…
jimklimov Sep 14, 2016
e513b1c
nut.spec : try to fix inability to detect LUA on some RPM buildhosts
jimklimov Sep 22, 2016
6cc80e5
nut.dsc / nut.spec : do not request rebuild and revalidation of DMF f…
jimklimov Sep 22, 2016
be08124
debian.rules : whitespace fixes
jimklimov Sep 22, 2016
057356e
debian.rules : skip even the manpages if the host cannot build them
jimklimov Sep 22, 2016
e619865
Distribute gen-snmp-subdriver.sh with nut-snmp
aquette Oct 6, 2016
df8b117
Distribute gen-snmp-subdriver.sh with nut-snmp for RPM
aquette Oct 6, 2016
4625c37
Drop remaining references to oldmge-shut
jimklimov Apr 12, 2017
209b41e
debian.rules : enable parallelized packaging
jimklimov Oct 13, 2017
2c3a546
Use DH_COMPAT=10 to enable parallel build support by default
jimklimov Oct 18, 2017
5c2eb90
packaging : use --with-docs=man=dist-auto
jimklimov Dec 31, 2017
d23f8f8
debian.rules : avoid re-configuring before "make install" again
jimklimov Dec 31, 2017
b1ca53a
nut.spec : fix "bindir" macro to "_bindir"
jimklimov Jan 2, 2018
475a5ea
nut.spec : use proper systemdshutdowndir relevant for current distro/…
jimklimov Jan 2, 2018
b62a626
Packaging : pass the systemd*dir arguments to configure script
jimklimov Jan 2, 2018
74dfbc4
nut.spec : dist augeas files
jimklimov Jan 2, 2018
59fa094
nut.spec : suse wants a package
jimklimov Jan 2, 2018
b3d939c
Debian packaging : require pkg-config, and provide some fallbacks if …
jimklimov Jan 2, 2018
eb38be4
nut.spec : publish augeas files
jimklimov Jan 3, 2018
eb8b773
nut.spec : avoid "nut" vs "nut-drivers-net" conflict over gen-snmp-su…
jimklimov Jan 15, 2018
c6206ee
nut.spec : fix RPM packaging for OBS
jimklimov Sep 3, 2018
b9dcb8b
nut.spec : remove commented-away references to private OBS patches th…
jimklimov Sep 5, 2018
3a23d4f
nut.spec : whitespace
jimklimov Sep 5, 2018
d27841a
nut.spec : do not redefine (differently) paths set by %configure macr…
jimklimov Sep 5, 2018
52f2e40
nut.spec : do not use the configure macro
jimklimov Sep 6, 2018
dfa1a6e
nut.spec : do not use the configure macro
jimklimov Sep 6, 2018
0478c42
Introduce (debian) nut-common package for user account and shared FS …
jimklimov Sep 26, 2018
f8f2e81
Add systemd registration of installed units
jimklimov Sep 26, 2018
63e4ff5
Add systemd startup of installed units
jimklimov Sep 26, 2018
49135ee
Add systemd shutdown of installed units during uninstallation of the …
jimklimov Sep 26, 2018
9bbfd95
debian.control : clarify where packages provide clients for "a local …
jimklimov Sep 26, 2018
957ad8e
debian.control : update sub-driver packages to rely on just the nut-s…
jimklimov Sep 26, 2018
1066962
debian.rules : deliver one nut-common.conf tmpfiles config instead of…
jimklimov Sep 26, 2018
6550c2c
debian.control : reference nut-common
jimklimov Sep 26, 2018
5c17ba9
debian.nut-*.post/pre-inst/rm : call /bin/systemctl only on systems w…
jimklimov Sep 27, 2018
e60c7ec
debian.nut-*.post/pre-inst/rm : do not fail package installation if c…
jimklimov Sep 27, 2018
e6ca418
debian.control : new nut-common has no opinion about old nut-hal-drivers
jimklimov Sep 27, 2018
6b0c656
debian.control : have "nut" metapackage explicitly depend on nut-comm…
jimklimov Sep 27, 2018
f33af06
debian.control : "nut-server" should have no business requiring "nut-…
jimklimov Sep 27, 2018
0a62338
nut-(client|server|common).postinst : skip DEBHELPER in our case
jimklimov Sep 27, 2018
d73855a
nut-driver-enumerator : use --reconfigure to remake units from scratc…
jimklimov Oct 4, 2018
4563117
debian.nut-server.postinst : REPORT_RESTART_42=no when reconfiguring
jimklimov Oct 5, 2018
260a597
debian.control : rephrase nut-server description
jimklimov Dec 5, 2018
10c86ac
debian.control : nut-ipmi should have run-time deps on IPMI libs
jimklimov Dec 5, 2018
c737a89
Problem: libnutclient not found in consumer packaged builds
jimklimov Feb 20, 2019
f542c4b
debian.rules : make sure wanted SONAMES exist (numbers remained uncha…
jimklimov Feb 20, 2019
fed0573
debian.rules : update SO_MAJOR_LIBUPSCLIENT for 42ity packaging
jimklimov Apr 3, 2019
a367683
Debian packaging: explicitly request libjpeg-dev so OBS is not confus…
jimklimov Apr 12, 2019
7986cc3
nut.spec : do not fail making build dir trees
jimklimov Apr 12, 2019
9664c7b
Debian packaging: explicitly request libssl*-dev so OBS is not confus…
jimklimov Apr 12, 2019
ac9ea23
Fix formal 42ity packaging for nut-monitor.png icon (recent master br…
jimklimov Mar 14, 2020
2ad29cf
Introduce "runbasedir" in debian packaging on OBS to use /run or /var…
jimklimov Dec 6, 2019
6f4debd
debian.rules : fix away debian. prefix for *.in templates
jimklimov Dec 6, 2019
36e14be
FTY OBS packaging: require libsystemd-dev in the build root (to use p…
jimklimov Jan 20, 2021
e4b8f1e
nut.dsc: clarify that any python 2/3 is okay, but we need an interpre…
jimklimov Jan 21, 2021
36f40d3
debian.control: clarify that any python 2/3 is okay, but we need an i…
jimklimov Jan 21, 2021
f7e14fe
debian.rules: clarify that any python 2/3 is okay, but we need an int…
jimklimov Jan 21, 2021
0e2f25b
debian.rules, nut.dsc: ask for dh_python2 | dh_python3 | dh_pypy
jimklimov Jan 21, 2021
650f0d2
debian.rules, nut.dsc: rather ask for dh-python | dh-python2 | dh-pyt…
jimklimov Jan 21, 2021
464f128
obs packaging: avoid warnings from systemd-sysv about legacy init scr…
jimklimov Feb 10, 2021
14afb55
pkgsrc.obs: tell OBS pusher to append gitdate to version
jimklimov May 4, 2021
2315e16
pkgsrc.obs: tell OBS pusher to append gitdate to version (first line …
jimklimov May 4, 2021
655ae41
Add new package for nut client stub
perrettecl May 17, 2021
cf219c0
Fix issue in debian rules for libnutclientstub
ericclappier-eaton May 18, 2021
371ac8d
Remove lib static for libnutclientstub dev install
ericclappier-eaton May 18, 2021
39c6dff
Update debian.control
perrettecl Aug 12, 2021
d7058d6
Update nut.dsc
perrettecl Aug 13, 2021
0069d35
packaging/debian: update for nut-modbus and nut-linux-i2c driver pack…
jimklimov Feb 9, 2022
21d916c
packaging/debian/control: update "libmodbus5" dependency name for Deb…
jimklimov Feb 10, 2022
d99441e
packaging/debian/rules: report PKG_CONFIG_PATH default
jimklimov Feb 10, 2022
d376d20
packaging/debian/rules: define a systemdtmpfilesdir
jimklimov Feb 10, 2022
842ccc9
obs/README.adoc, obs/Makefile.am, Makefile.am, configure.ac: document…
jimklimov Jul 30, 2025
7bd15d7
docs/qa-guide.adoc: mention OBS [#1209]
jimklimov Jul 30, 2025
9221eee
obs/nut.spec: expand python requirements
jimklimov Oct 7, 2025
dca299e
obs/nut.spec: update heading metadata
jimklimov Oct 7, 2025
4740120
obs/nut.spec: accept either libusb-0.1 or 1.0
jimklimov Oct 7, 2025
5041dcb
obs/nut.spec: accept either httpd-devel or apache2-devel
jimklimov Oct 7, 2025
c9bf30b
obs/nut.spec: make DMF builds and deliveries optional (currently off …
jimklimov Oct 7, 2025
11d1b5d
obs/nut.spec: make IPMI, AVAHI and POWERMAN builds optional (if packa…
jimklimov Oct 7, 2025
6bf3637
obs/nut.spec: refactor BuildRequires to avoid catering to distro-spec…
jimklimov Oct 7, 2025
fca2efc
obs/nut.spec: make TCP_WRAPPERS builds optional (if package seems ava…
jimklimov Oct 7, 2025
406eb55
obs/nut.spec: fix typos; make cppunit-devel optional (not in RHEL7)
jimklimov Oct 7, 2025
522a066
obs/nut.spec: LUA only needed for DMF builds
jimklimov Oct 7, 2025
f3c2c7e
obs/nut.spec: revise neon dependency
jimklimov Oct 7, 2025
e3aed3a
obs/nut.spec: do not call "python" directly
jimklimov Oct 7, 2025
c4d5942
obs/nut.spec: explicitly "Prefer" something when OBS sees we "have ch…
jimklimov Oct 7, 2025
7c75d84
obs/nut.spec: hide dblatex
jimklimov Oct 7, 2025
d054818
obs/nut.spec: reword comment
jimklimov Oct 7, 2025
eb5b344
obs/nut.spec: exclude DMF artifacts from main pkg only if NUTPKG_WITH…
jimklimov Oct 7, 2025
7cc236b
obs/nut.spec: many docs files were renamed to *.adoc
jimklimov Oct 7, 2025
42ea364
obs/debian.changelog, obs/nut.dsc: bump formal versioning
jimklimov Oct 7, 2025
56e343e
obs/debian.rules: do not run python directly anymore
jimklimov Oct 7, 2025
5584e0a
obs/debian.control: support several libusb implementations
jimklimov Oct 7, 2025
e7fae7e
obs/nut.spec: deliver files that are built and installed but were not…
jimklimov Oct 7, 2025
5ebb088
obs/nut.spec: rename "GROUP" which tends to pull in package type string
jimklimov Oct 7, 2025
d59d6f1
obs/nut.spec: only run udevadm where available
jimklimov Oct 7, 2025
96c8164
obs/debian.nut.docs: update file name lists
jimklimov Oct 7, 2025
4a3f701
obs/nut.spec: avoid "chown USER:GROUP" syntax
jimklimov Oct 7, 2025
be4f5fd
obs/debian.nut-monitor.install: GUI glade files have moved
jimklimov Oct 7, 2025
64cf028
obs/nut.spec: fix sub-package name for NUT-Monitor (GUI)
jimklimov Oct 7, 2025
ea3633c
obs/nut.spec: only use apache_serverroot if we can detect it; otherwi…
jimklimov Oct 8, 2025
ce3f487
obs/nut.spec: actually detect ability to build NUTPKG_WITH_DMF (sourc…
jimklimov Oct 8, 2025
e754ded
obs/nut.spec: update comments
jimklimov Oct 8, 2025
8fd10a4
obs/nut.spec: post: neuter faults of chown/chgrp/chmod (some rpmbuild…
jimklimov Oct 8, 2025
2836362
obs/nut.spec: exclude in root package whatever we put into sub-packag…
jimklimov Oct 8, 2025
0920996
obs/nut.spec: try another way of checking that apache_serverroot is d…
jimklimov Oct 8, 2025
f087981
obs/debian.rules: fix a shell/make typo
jimklimov Oct 8, 2025
6b70c54
obs/debian.rules: binary-install/nut-monitor: use dh_python* more cle…
jimklimov Oct 8, 2025
c85197e
obs/nut.spec: comment about %(cmd) definitions
jimklimov Oct 8, 2025
59e4634
obs/debian.rules: bump SO_MAJOR_LIB* vars and add libnutconf installa…
jimklimov Oct 8, 2025
6f1a4b5
obs/nut.spec: try another way of checking that apache_serverroot is d…
jimklimov Oct 8, 2025
ff1a824
obs/nut.spec: require basic tooling used in rpmlint checks
jimklimov Oct 8, 2025
c44bbca
obs/README.adoc, docs/nut.dict: update info about OBS recipes [#1209]
jimklimov Oct 8, 2025
b77d47b
obs/debian.nut-cgi.docs: README renamed to *.adoc
jimklimov Oct 8, 2025
00174b8
obs/debian.rules: make NUTPKG_WITH_DMF optional (based on the branch …
jimklimov Oct 8, 2025
bea9697
obs/nut.spec: %pre: try to groupadd to be sure
jimklimov Oct 8, 2025
ebdb050
obs/nut.spec: address some concerns from rpmlint
jimklimov Oct 8, 2025
5b1f94a
obs/nut.spec: only package docs/cables/*.txt, not the whole builddir
jimklimov Oct 8, 2025
fd64066
obs/debian.rules: fix sed with parentheses
jimklimov Oct 8, 2025
ef24962
obs/nut.spec: fix rpm-var expansion for conditionals
jimklimov Oct 8, 2025
74dae36
obs/nut.spec: udev rules no longer under /etc - not a %config (hopefu…
jimklimov Oct 8, 2025
ebd578d
obs/debian.rules: search for systemd configs also in libsystemd
jimklimov Oct 8, 2025
d2a0653
obs/debian.rules: fix check for NUTPKG_WITH_DMF
jimklimov Oct 8, 2025
9e445d9
obs/debian.rules: fix iteration for debian *.install fixup (DMF)
jimklimov Oct 8, 2025
7610aab
obs/debian.rules: fix pkg-config search for systemd vars
jimklimov Oct 8, 2025
79157c8
obs/nut.spec: reshuffle NUT_SYSTEMD_UNITS_SERVICE_TARGET definition
jimklimov Oct 8, 2025
19c7029
obs/nut.dsc, obs/debian.control: do not require "python-is-..." which…
jimklimov Oct 9, 2025
e60ed00
obs/debian.rules: convince cdbs about dh_python3 when it is the only …
jimklimov Oct 9, 2025
304babb
ci_build.sh: wrap pkg-rpm and pkg-deb (PoC)
jimklimov Oct 9, 2025
3ec158f
obs.*, ci_build.sh: rename debiam recipe files to standard pattern
jimklimov Oct 9, 2025
f306cad
obs/*: drop "control" symlink
jimklimov Oct 9, 2025
0f2f743
ci_build.sh: pkg-deb: fix shell and sed syntax
jimklimov Oct 9, 2025
c2b17e6
ci_build.sh: pkg-deb: force debuikd differently
jimklimov Oct 9, 2025
b56453c
ci_build.sh: pkg-deb: install prereqs (TBD;: optional?)
jimklimov Oct 9, 2025
adaff5d
ci_build.sh: pkg-deb: clean away cdbs temp leftovers
jimklimov Oct 9, 2025
8a88311
ci_build.sh: pkg*: pre-cleanup more
jimklimov Oct 9, 2025
16d3aac
obs/debian.rules: try harder to detect python2/3 helper
jimklimov Oct 9, 2025
ffb4b2a
obs/nut.spec: avoid what looks like spec-var expansion in comments
jimklimov Oct 9, 2025
8b30901
obs/nut.spec: do not dump sockdebug and NDE script into /usr/libexec …
jimklimov Oct 9, 2025
b4d9b56
obs/nut.spec: specify system locations we use via %dir
jimklimov Oct 9, 2025
872320c
obs/nut.spec: comment about alias man pages seen as duplicate files i…
jimklimov Oct 9, 2025
0a7ff40
obs/nut.spec: seems there is no "%if X != Y" syntax
jimklimov Oct 9, 2025
8a6cc34
obs/nut.spec: announce where and how we rewrite shebangs
jimklimov Oct 9, 2025
d4caf7a
obs/nut.spec: reject found apache_serverroot that is under /usr/share
jimklimov Oct 9, 2025
fff0a7d
obs/nut.spec: abstract the LIBEXECPATH as a spec-var
jimklimov Oct 9, 2025
996e0c7
obs/nut.spec: do not mention man1
jimklimov Oct 9, 2025
24c12b7
obs/nut.spec: abstract the DOCPATH as a spec-var
jimklimov Oct 9, 2025
f0647e8
obs/nut.spec: shebangs: fix shell and sed syntax
jimklimov Oct 9, 2025
42288f3
Move obs/ to scripts/obs/ for consistency with other helper code
jimklimov Oct 9, 2025
72ad473
scripts/obs/_service: add a copy of working OBS recipe
jimklimov Oct 9, 2025
47e279d
scripts/obs/README.adoc: update with Practical setup and Other notes
jimklimov Oct 9, 2025
84d82f3
ci_build.sh: add failsafes into pkg* build types
jimklimov Oct 9, 2025
d8de298
scripts/obs/nut.spec: let the SPEC version reflect in NUT self-identi…
jimklimov Oct 9, 2025
f0448b4
scripts/obs/nut.spec: refactor how we get HTMLPATH and CGIPATH, they …
jimklimov Oct 9, 2025
24fff58
scripts/obs/nut.spec: require user/group for post-install script context
jimklimov Oct 9, 2025
4b07052
scripts/obs/nut.spec: require more tools for SUSE platform tests on OBS
jimklimov Oct 9, 2025
b287635
scripts/obs/nut.spec: do not package directly-named "/bin" objects
jimklimov Oct 9, 2025
4b0abe2
scripts/obs/nut.spec: dep on chroot does not work like this
jimklimov Oct 9, 2025
ecc517c
scripts/obs/nut.spec: dep on accounts for pkg self-test does not work…
jimklimov Oct 9, 2025
a29b650
scripts/obs/nut.spec: BuildRequires: libxml2-devel
jimklimov Oct 9, 2025
a187389
scripts/obs/nut.spec: fix systemdtmpfilesdir determination
jimklimov Oct 9, 2025
9692a97
scripts/obs/nut.spec: fence delivery of systemd files (check if we co…
jimklimov Oct 9, 2025
2378cbe
scripts/obs/nut.spec: do not relocate upssched-cmd to hard-coded /bin
jimklimov Oct 9, 2025
8eaa33c
scripts/obs/nut.spec: revise pre/port-in/un snippets
jimklimov Oct 9, 2025
0e9d7aa
scripts/obs/nut.spec: comment away "%dir" and "%exclude" hacks that f…
jimklimov Oct 9, 2025
41eaa76
scripts/obs/nut.spec: deliver libs each in its ABI-version-named package
jimklimov Oct 9, 2025
e55839d
scripts/obs/nut.spec: address SUSE rpmlint issues with logrotate
jimklimov Oct 9, 2025
fad2db0
scripts/obs/nut.spec: address SUSE rpmlint issues with scripted-only …
jimklimov Oct 9, 2025
5c4a970
scripts/obs/nut.spec: address SUSE rpmlint issues with "make check" s…
jimklimov Oct 9, 2025
16e36d3
scripts/obs/nut.spec: revise delivery of CGI artifacts as %dir
jimklimov Oct 9, 2025
c5af3ed
scripts/obs/nut.spec: keep excluding from main package stuff that sho…
jimklimov Oct 9, 2025
d4e826c
scripts/obs/nut.spec: anticipate something like /usr/lib64/python2.7/…
jimklimov Oct 9, 2025
416aa5e
scripts/obs/nut.spec: reduce layering of CGIPATH under apache_serverr…
jimklimov Oct 9, 2025
ef60cd0
scripts/obs/nut.spec: reduce layering of HTMLPATH under apache_server…
jimklimov Oct 9, 2025
31949e2
scripts/obs/nut.spec: deduplicate man page files with symlinks
jimklimov Oct 9, 2025
c71f069
scripts/obs/nut.spec, scripts/obs/debian.rules: enable storing build …
jimklimov Oct 9, 2025
d261d7b
scripts/obs/nut.spec: register other service units (enablement is via…
jimklimov Oct 9, 2025
dd3cb40
scripts/obs/README.adoc: update notes on OBS prjconf
jimklimov Oct 10, 2025
bc3f1cd
scripts/obs/_config: track a copy of prjconf data
jimklimov Oct 10, 2025
439afe5
scripts/obs/nut.spec: nut-monitor requires python-base
jimklimov Oct 10, 2025
db25768
scripts/obs/nut.spec: hide %dir /var/log (we do not own it), suffice …
jimklimov Oct 10, 2025
6f31e24
scripts/obs/nut.spec: update comment about python locations
jimklimov Oct 10, 2025
7147327
scripts/obs/debian.rules: update for bleeding-edge CDBS that lacks ma…
jimklimov Oct 13, 2025
0768fdf
scripts/obs/debian.rules: do not mislead about lack of dh_python2 due…
jimklimov Oct 13, 2025
7d2c99e
scripts/obs/debian.rules: make list-missing optional (absent in new c…
jimklimov Oct 13, 2025
28d1cdf
scripts/obs/nut.changes: isn't it a placeholder for RPM changelog?
jimklimov Oct 14, 2025
46f56dd
ci_build.sh: pkg-rpm|pkg-spec: fix rpmbuild callout
jimklimov Oct 14, 2025
b22316c
scripts/obs/debian.nut-cgi.docs: align with renaming of data/html => …
jimklimov Oct 24, 2025
086f7af
NEWS.adoc, UPGRADING.adoc: warn about renamed data/html{,cgi} source …
jimklimov Oct 24, 2025
ece5538
NEWS.adoc: announce upstreamed OBS packaging recipes [#1209, #1316, #…
jimklimov Oct 24, 2025
032ea6e
scripts/obs/Makefile.am: fix EXTRA_DIST list
jimklimov Oct 24, 2025
17d9764
.obs/workflows.yml: Introduce an OBS workflow [#1209]
jimklimov Oct 26, 2025
d924996
.obs/workflows.yml: extend workflow definition [#1209]
jimklimov Oct 26, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions .obs/workflows.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# See https://openbuildservice.org/help/manuals/obs-user-guide/cha-obs-scm-ci-workflow-integration#sec.obs.obs_scm_ci_workflow_integration.setup.token_authentication.how_to_authenticate_scm_with_obs

main_workflow:
steps:
- branch_package:
source_project: home:jimklimov
source_package: nut
target_project: networkupstools
filters:
event: pull_request

rebuild_master:
steps:
- trigger_services:
project: networkupstools
package: nut
filters:
event:
- push
- tag_push
branches:
only:
- master
1 change: 1 addition & 0 deletions Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -650,6 +650,7 @@ SPELLCHECK_DIRS_MOST = \
spellcheck/scripts/external_apis \
spellcheck/scripts/hotplug \
spellcheck/scripts/installer \
spellcheck/scripts/obs \
spellcheck/scripts/python \
spellcheck/scripts/systemd \
spellcheck/scripts/udev \
Expand Down
12 changes: 12 additions & 0 deletions NEWS.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -232,6 +232,11 @@ several `FSD` notifications into one executed action. [PR #3097]
- Updated `docs/*.txt`: add asciidoc comments with links to nut-website
rendered contents of most interesting pages. [#3095]

- Source directory `data/html` was renamed to `data/htmlcgi` in order to
better reflect its contents and purpose, compared to documentation-oriented
`html*` directories (and recipe variable names). This may impact some
packaging recipes which do not rely on `make install` alone. [#3049]

- Dropped the `compile` script from Git sources. It originates from automake
and is added to work area (if missing) during `autogen.sh` rituals anyway.
It is still distributed as part of `make dist` tarball. [#1209]
Expand Down Expand Up @@ -265,6 +270,13 @@ several `FSD` notifications into one executed action. [PR #3097]
- The `configure` script should now try harder to report specifically
the "purelib" location as `PYTHON*_SITE_PACKAGES`. [#1209]

- Upstreamed reference packaging recipes (DEB, RPM) from the 42ITy project
which can be used with OBS (Open Build Service by SUSE), both to support
end-user testing of NUT development, and to have a yet another NUT CI farm
player with a distinct opinion on code quality. Many of the changes listed
above happened thanks to this effort, and due to concerns raised by OBS
build agents with various Linux distributions. [#1209, #1316, #3144]

- Revised use of NUT macros for USB Vendor IDs listed in different drivers,
so the names would be better exposed in generated `udev.rules` and similar
files. [PR #3139]
Expand Down
5 changes: 5 additions & 0 deletions UPGRADING.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,11 @@ Changes from 2.8.4 to 2.8.5
help distributions that place `*.conf.sample` files into docs or other
locations. [#3131]

- Source directory `data/html` was renamed to `data/htmlcgi` in order to better
reflect its contents and purpose, compared to documentation-oriented `html*`
directories (and recipe variable names). This may impact some packaging
recipes which do not rely on `make install` alone. [#3049]

- Dropped the `compile` script from Git sources. It originates from automake
and is added to work area (if missing) during `autogen.sh` rituals anyway
(as `make` says, `'automake --add-missing' can install 'compile'` when you
Expand Down
38 changes: 38 additions & 0 deletions ci_build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -1478,6 +1478,8 @@ if [ -z "$BUILD_TYPE" ] ; then

win|windows|cross-windows-mingw) BUILD_TYPE="cross-windows-mingw" ; shift ;;

pkg*) BUILD_TYPE="$1" ; shift ;;

spellcheck|spellcheck-interactive|spellcheck-quick|spellcheck-interactive-quick)
# Note: this is a little hack to reduce typing
# and scrolling in (docs) developer iterations.
Expand Down Expand Up @@ -2869,6 +2871,42 @@ cross-windows-mingw*)
./build-mingw-nut.sh $cmd
;;

pkg-rpm|pkg-spec)
echo "WARNING: package build recipes manipulate directly your current workspace" >&2
echo " and would remove any git-ignored files, might leave trash afterwards!" >&2
echo " Press Ctrl+C to abort if this is a problem" >&2
sleep 5

rm -f nut.spec nut.changes || true
git clean -fdX || true
cp -f scripts/obs/nut.spec scripts/obs/nut.changes .
sed -e 's,^(Version:).*$,\1 '"`NUT_VERSION_QUERY=VER50 ./tools/gitlog2version.sh`," \
-i nut.spec
rpmbuild -ba nut.spec \
&& find . -name '*rpm'
;;

pkg-deb|pkg-dsc)
echo "WARNING: package build recipes manipulate directly your current workspace" >&2
echo " and would remove any git-ignored files, might leave trash afterwards!" >&2
echo " Press Ctrl+C to abort if this is a problem" >&2
sleep 5

rm -rf debian config.*cdbs* nut.dsc || true
git clean -fdX || true
mkdir -p debian
(cd scripts/obs || exit
for F in debian.* ; do
ln -s "../scripts/obs/$F" "../../debian/`echo "$F" | sed 's/debian.//'`" || exit
done) || exit
cp -f scripts/obs/nut.dsc .
sed -e 's,^\(Version:\).*$,\1 '"`NUT_VERSION_QUERY=VER50 ./tools/gitlog2version.sh`," \
-i nut.dsc
dpkg-checkbuilddeps || sudo mk-build-debs -i
yes | debuild \
&& find . -name '*deb'
;;

*)
pushd "./builds/${BUILD_TYPE}" && REPO_DIR="$(dirs -l +1)" ./ci_build.sh
;;
Expand Down
1 change: 1 addition & 0 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -6808,6 +6808,7 @@ AC_CONFIG_FILES([
scripts/HP-UX/nut.psf
scripts/installer/Makefile
scripts/misc/nut.bash_completion
scripts/obs/Makefile
scripts/python/Makefile
scripts/python/module/Makefile
scripts/python/module/PyNUT.py
Expand Down
6 changes: 5 additions & 1 deletion docs/nut.dict
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
personal_ws-1.1 en 3566 utf-8
personal_ws-1.1 en 3576 utf-8
AAC
AAS
ABI
Expand Down Expand Up @@ -148,6 +148,7 @@ Breiland
Brownell
Bs
BuildBot
BuildRequires
Buildbot
Bxx
ByPass
Expand Down Expand Up @@ -1412,6 +1413,7 @@ Uncomment
Unices
Unitek
Upsonic
Upstreamed
Ut
V'ger
VALIGN
Expand Down Expand Up @@ -2764,6 +2766,7 @@ optimizations
optiups
oq
os
osc
ostream
other's
otheruser
Expand Down Expand Up @@ -2876,6 +2879,7 @@ prio
priv
privPassword
privProtocol
prjconf
problemMatcher
probu
proc
Expand Down
15 changes: 15 additions & 0 deletions docs/qa-guide.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -520,6 +520,21 @@ gcc and clang, C standards, and requiring to pass builds at least in a
mode without warnings (and checking the other cases where any warnings
are made fatal).

Open Build Service (OBS)
~~~~~~~~~~~~~~~~~~~~~~~~
[[NUT_CI_OBS]]

The SuSE-backed software suite and on-line instance of the Open Build
Service (OBS) allows building packages for a wide range of Linux (and
potentially non-Linux) operating system distributions.

This can be seen as an additional CI test for multi-platform portability,
but mainly allows NUT users to get recent development builds as "proper"
packages.

* https://build.opensuse.org/
* https://openbuildservice.org/

Continuous Integration (NUT CI farm) build agent preparation
------------------------------------------------------------
[[NUTCI_farm_agents]]
Expand Down
4 changes: 2 additions & 2 deletions scripts/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,9 @@ EXTRA_DIST = \
valgrind/valgrind.sh.in \
Windows/halt.c

SUBDIRS = augeas devd hotplug installer python systemd udev ufw Solaris Windows upsdrvsvcctl external_apis
SUBDIRS = augeas devd hotplug installer obs python systemd udev ufw Solaris Windows upsdrvsvcctl external_apis

SPELLCHECK_SRC = README.adoc RedHat/README.adoc usb_resetter/README.adoc valgrind/README.adoc
SPELLCHECK_SRC = README.adoc RedHat/README.adoc usb_resetter/README.adoc valgrind/README.adoc obs/README.adoc

# NOTE: Due to portability, we do not use a GNU percent-wildcard extension.
# We also have to export some variables that may be tainted by relative
Expand Down
121 changes: 121 additions & 0 deletions scripts/obs/Makefile.am
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
# Network UPS Tools: obs (root)

EXTRA_DIST = README.adoc _service _config

# Also EXTRA_DIST the recipe-related files (so OBS can use tarballs if they like)

# Debian/Ubuntu recipes:
EXTRA_DIST += \
debian.Makefile.am \
debian.NEWS \
debian.changelog \
debian.compat \
debian.control \
debian.copyright \
debian.description.subst \
debian.gbp.conf \
debian.hotplug \
debian.libnutclient-dev.install \
debian.libnutclient-dev.manpages \
debian.libnutclient1.install \
debian.libnutclient1.lintian-overrides \
debian.libnutclientstub-dev.install \
debian.libnutclientstub1.install \
debian.libnutclientstub1.lintian-overrides \
debian.libnutscan-dev.install \
debian.libnutscan1.install \
debian.libups-nut-perl.install \
debian.libupsclient-dev.install \
debian.libupsclient-dev.manpages \
debian.libupsclient4.install \
nut.changes \
debian.nut-cgi.README.Debian \
debian.nut-cgi.docs \
debian.nut-cgi.install \
debian.nut-cgi.manpages \
debian.nut-cgi.postinst \
debian.nut-cgi.postrm \
debian.nut-client.init.in \
debian.nut-client.install \
debian.nut-client.links \
debian.nut-client.lintian-overrides \
debian.nut-client.maintscript \
debian.nut-client.manpages \
debian.nut-client.postinst \
debian.nut-client.preinst \
debian.nut-client.prerm \
debian.nut-common.install \
debian.nut-common.postinst.in \
debian.nut-common.prerm.in \
debian.nut-common.tmpfiles.in \
debian.nut-doc.doc-base.nut-developer-guide \
debian.nut-doc.doc-base.nut-faq \
debian.nut-doc.doc-base.nut-packager-guide \
debian.nut-doc.doc-base.nut-user-manual \
debian.nut-doc.install \
debian.nut-ipmi.install \
debian.nut-ipmi.manpages \
debian.nut-linux-i2c.install \
debian.nut-linux-i2c.manpages \
debian.nut-modbus.install \
debian.nut-modbus.manpages \
debian.nut-monitor.install \
debian.nut-monitor.menu \
debian.nut-monitor.xpm \
debian.nut-powerman-pdu.install \
debian.nut-powerman-pdu.manpages \
debian.nut-server.dirs \
debian.nut-server.init.in \
debian.nut-server.install \
debian.nut-server.manpages \
debian.nut-server.postinst \
debian.nut-server.postrm \
debian.nut-server.preinst \
debian.nut-server.prerm.in \
debian.nut-snmp.docs \
debian.nut-snmp.install \
debian.nut-snmp.manpages \
debian.nut-xml.install \
debian.nut-xml.manpages \
debian.nut.README.Debian \
debian.nut.TODO.Debian \
debian.nut.docs \
debian.python-nut.install \
debian.rules \
debian.series \
debian.watch \
nut.dsc

# RedHAT/Fedora/CentOS/... recipes:
EXTRA_DIST += \
nut.spec

# PKGSRC recipes:
EXTRA_DIST += \
pkgsrc.obs

SPELLCHECK_SRC = README.adoc

# NOTE: Due to portability, we do not use a GNU percent-wildcard extension.
# We also have to export some variables that may be tainted by relative
# paths when parsing the other makefile (e.g. MKDIR_P that may be defined
# via expanded $(top_builddir)/install-sh):
#%-spellchecked: % Makefile.am $(top_srcdir)/docs/Makefile.am $(abs_srcdir)/$(NUT_SPELL_DICT)
# +$(MAKE) $(AM_MAKEFLAGS) -s -f $(top_builddir)/docs/Makefile MKDIR_P="$(MKDIR_P)" builddir="$(builddir)" srcdir="$(srcdir)" top_builddir="$(top_builddir)" top_srcdir="$(top_srcdir)" SPELLCHECK_SRC_ONE="$<" SPELLCHECK_SRCDIR="$(srcdir)" SPELLCHECK_BUILDDIR="$(builddir)" $@

# NOTE: Portable suffix rules do not allow prerequisites, so we shim them here
# by a wildcard target in case the make implementation can put the two together.
*-spellchecked: Makefile.am $(top_srcdir)/docs/Makefile.am $(abs_srcdir)/$(NUT_SPELL_DICT)

.sample.sample-spellchecked:
+$(MAKE) $(AM_MAKEFLAGS) -s -f $(top_builddir)/docs/Makefile MKDIR_P="$(MKDIR_P)" builddir="$(builddir)" srcdir="$(srcdir)" top_builddir="$(top_builddir)" top_srcdir="$(top_srcdir)" SPELLCHECK_SRC_ONE="$<" SPELLCHECK_SRCDIR="$(srcdir)" SPELLCHECK_BUILDDIR="$(builddir)" $@

.in.in-spellchecked:
+$(MAKE) $(AM_MAKEFLAGS) -s -f $(top_builddir)/docs/Makefile MKDIR_P="$(MKDIR_P)" builddir="$(builddir)" srcdir="$(srcdir)" top_builddir="$(top_builddir)" top_srcdir="$(top_srcdir)" SPELLCHECK_SRC_ONE="$<" SPELLCHECK_SRCDIR="$(srcdir)" SPELLCHECK_BUILDDIR="$(builddir)" $@

spellcheck spellcheck-interactive spellcheck-sortdict:
+$(MAKE) $(AM_MAKEFLAGS) -f $(top_builddir)/docs/Makefile MKDIR_P="$(MKDIR_P)" builddir="$(builddir)" srcdir="$(srcdir)" top_builddir="$(top_builddir)" top_srcdir="$(top_srcdir)" SPELLCHECK_SRC="$(SPELLCHECK_SRC)" SPELLCHECK_SRCDIR="$(srcdir)" SPELLCHECK_BUILDDIR="$(builddir)" $@

CLEANFILES = *-spellchecked

MAINTAINERCLEANFILES = Makefile.in .dirstamp
66 changes: 66 additions & 0 deletions scripts/obs/README.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
= Packaging recipes for OBS

== Overview

This directory holds reference NUT packaging recipes for RPM, DEB and
other formats, and is primarily aimed at automation of builds with the
link:https://openbuildservice.org/[Open Build Service (OBS)].

Note that beside the on-line service, the software is open-source and
any project may install and run their own server instance. The `osc build`
command can also be used on a workstation to iterate recipe nuances for
different distributions. In theory, back-end scripts may be added to
support more operating systems over time (even not necessarily Linux).

NOTE: The layout of files and directories here is dictated by current
expectations of the OBS software (if at some point it has to be a flat
mess with no structure -- so be it).

== Practical setup

The copy of `_service` file represents the directly maintained OBS recipe
in an OBS packaging project, and is the only file needed there (triggering
service runs updates the temporary tarball from git).

Beside that, a `_config` file in the OBS project repository or live settings
in `osc meta prjconf --edit` can be used to specify unambiguous preferences
for certain packages, when a distro actually offers a choice via conditional
`BuildRequires` statements (and other options), e.g.:

----
Prefer: libusbx-devel
Prefer: libusb-1.0-dev
Prefer: neon-devel
----

* For more details on this, see
https://openbuildservice.org/help/manuals/obs-user-guide/cha-obs-prjconfig

A parent project must be used to define OBS Repositories we build for, which
should usually include a layer with `openSUSE:Tools` to have the OBS helper
scripts needed for package and tarball transformations in the build area,
for example: https://build.opensuse.org/projects/home:jimklimov/meta

The list of known distros and repositories massaged with these tools can be
seen at https://build.opensuse.org/repositories/openSUSE:Tools

For some historical and/or practical details see:

* https://github.com/networkupstools/nut/issues/1209

== Other notes

The recipe files themselves would likely cross-pollinate with popular
distributions, to allow easier replacement of standard, supported and
stale package builds with those of experimental development iterations.

This should be in part facilitated by the NUT Semantic Versioning scheme (see
linkdoc:developer-guide[NUT Semantic Versioning,versioning,docs/nut-versioning.adoc])
which adds version number components to expose the "age" of each such
iteration as a number of commits merged into the common development trunk
since a preceding release, and a number of commits unique to a feature
branch.

Maybe some way of pre-making a dist tarball (with `VERSION_DEFAULT`, man
pages pre-built, etc.) and using that would be better, to be explored
(ideally if we can do this within OBS).
Loading
Loading