Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package ocaml-rpm-macros for openSUSE:Factory checked in at 2021-04-22 18:03:29 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ocaml-rpm-macros (Old) and /work/SRC/openSUSE:Factory/.ocaml-rpm-macros.new.12324 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ocaml-rpm-macros" Thu Apr 22 18:03:29 2021 rev:13 rq:887313 version:20210421 Changes: -------- --- /work/SRC/openSUSE:Factory/ocaml-rpm-macros/ocaml-rpm-macros.changes 2021-02-15 23:10:25.510869311 +0100 +++ /work/SRC/openSUSE:Factory/.ocaml-rpm-macros.new.12324/ocaml-rpm-macros.changes 2021-04-22 18:03:45.806487933 +0200 @@ -1,0 +2,16 @@ +Wed Apr 21 12:34:56 UTC 2021 - oher...@suse.de + +- Remove ocaml_native_compiler flag, assume native target + This flag puts too much burden on pkgs that use ocaml, but build + with their buildsystem instead of using dune + +------------------------------------------------------------------- +Fri Apr 9 09:09:09 UTC 2021 - oher...@suse.de + +- Use bcond suse_ocaml_use_rpm_license_macro for license in filelist +- Add suse prefix to ocaml_native_compiler to avoid conflict +- Create Provides/Requires only for rpm variants which understand fileattrs +- Fix syntax for chmod of .cmxs +- Add conditional to disable debug_package macro when building with broken rpm variants + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ocaml-rpm-macros.spec ++++++ --- /var/tmp/diff_new_pack.bbLdvQ/_old 2021-04-22 18:03:46.222488576 +0200 +++ /var/tmp/diff_new_pack.bbLdvQ/_new 2021-04-22 18:03:46.226488582 +0200 @@ -17,38 +17,31 @@ Name: ocaml-rpm-macros -Version: 20210209 +Version: 20210421 Release: 0 Summary: RPM macros for building OCaml source packages License: GPL-2.0-only Group: Development/Languages/OCaml +BuildRoot: %_tmppath/%name-%version-build +ExclusiveArch: %arm aarch64 %ix86 ppc ppc64 ppc64le riscv64 s390x x86_64 URL: https://build.opensuse.org/project/show/devel:languages:ocaml Source0: ocaml-ocaml.rpm.prov_req.attr.sh Source1: ocaml-findlib.rpm.prov_req.attr.sh +# Some rpm variants know about license, but can only use them in plain file context +%bcond_without suse_ocaml_use_rpm_license_macro +# Some rpm variants are unable to create proper debuginfo and/or debugsource packages +%bcond_without suse_ocaml_opt_debug_package +# Some rpm variants fail to build even this innocent package... +%define debug_package %{nil} + %define ocaml_standard_library %{_libdir}/ocaml -%define do_opt 0 # macros to be set in prjconf: #Macros: -#_with_ocaml_force_enable_ocaml_opt 1 -#_with_ocaml_force_disable_ocaml_opt 1 #_with_ocaml_make_testsuite 1 #:Macros -%bcond_with ocaml_force_enable_ocaml_opt -%bcond_with ocaml_force_disable_ocaml_opt %bcond_with ocaml_make_testsuite -%if %{with ocaml_force_enable_ocaml_opt} -%define do_opt 1 -%endif -%if %{without ocaml_force_enable_ocaml_opt} -%ifarch %{arm} aarch64 %{ix86} ppc ppc64 ppc64le riscv64 s390x x86_64 -%define do_opt 1 -%endif -%endif # -%if %{with ocaml_force_disable_ocaml_opt} -%define do_opt 0 -%endif # %description @@ -63,30 +56,45 @@ %build %install -# map ocamlobjinfo output to rpm Provides/Requires -# this tag name MUST match what ocaml.spec uses internally -tag="suseocaml" -mkdir -vp %{buildroot}%{_rpmconfigdir}/fileattrs -tee %{buildroot}%{_rpmconfigdir}/fileattrs/${tag}.attr <<_EOF_ -%%__${tag}_provides %%{_rpmconfigdir}/${tag}.sh --provides -%%__${tag}_requires %%{_rpmconfigdir}/${tag}.sh --requires +> files.fileattrs +if test -d '%{_rpmconfigdir}/fileattrs' +then + # Generating dependencies can currently only be done by rpm versions + # which support "fileattrs", because it is easy to add new hooks. + mkdir -vp %{buildroot}%{_rpmconfigdir}/fileattrs + + # Map ocamlobjinfo output to rpm Provides/Requires + # This tag name MUST match what ocaml.spec uses internally + tag="suseocaml" + file_attr="%{_rpmconfigdir}/fileattrs/${tag}.attr" + file_sh="%{_rpmconfigdir}/${tag}.sh" + attr_sh="%%{_rpmconfigdir}/${tag}.sh" + tee %{buildroot}${file_sh} < %{SOURCE0} + tee %{buildroot}${file_attr} <<_EOF_ +%%__${tag}_provides ${attr_sh} --provides +%%__${tag}_requires ${attr_sh} --requires %%__${tag}_magic ^(ELF|Objective caml|OCaml) .*$ %%__${tag}_path .(cma|cmi|cmo|cmx|cmxa|cmxs)$ %%__${tag}_flags magic_and_path _EOF_ -# -tee %{buildroot}%{_rpmconfigdir}/${tag}.sh < %{SOURCE0} + echo "${file_attr}" >> files.fileattrs + echo "%%attr(755,root,root) ${file_sh}" >> files.fileattrs -# map findlib names to rpm Provides/Requires -tag="suseocamlfind" -mkdir -vp %{buildroot}%{_rpmconfigdir}/fileattrs -tee %{buildroot}%{_rpmconfigdir}/fileattrs/${tag}.attr <<_EOF_ -%%__${tag}_provides %%{_rpmconfigdir}/${tag}.sh -prov -%%__${tag}_requires %%{_rpmconfigdir}/${tag}.sh -req + # Map findlib names to rpm Provides/Requires + tag="suseocamlfind" + file_attr="%{_rpmconfigdir}/fileattrs/${tag}.attr" + file_sh="%{_rpmconfigdir}/${tag}.sh" + attr_sh="%%{_rpmconfigdir}/${tag}.sh" + tee %{buildroot}${file_sh} < %{SOURCE1} + tee %{buildroot}${file_attr} <<_EOF_ +%%__${tag}_provides ${attr_sh} -prov +%%__${tag}_requires ${attr_sh} -req %%__${tag}_path ^%{ocaml_standard_library}/.*/META$|^%{ocaml_standard_library}/META$ _EOF_ + echo "${file_attr}" >> files.fileattrs + echo "%%attr(755,root,root) ${file_sh}" >> files.fileattrs +fi # -tee %{buildroot}%{_rpmconfigdir}/${tag}.sh < %{SOURCE1} # install OCaml macros mkdir -vp %{buildroot}%{_rpmmacrodir} @@ -108,20 +116,17 @@ # the .dwz files contains identical contents, which leads to identical # checksums, which leads to file conflicts due to identical symlinks %%ocaml_standard_library %{ocaml_standard_library} -%if %{do_opt} +%if %{without suse_ocaml_opt_debug_package} +# Obviously, handling presence or absence of debug information works only when being built in a SUSE system. +%endif %%ocaml_preserve_bytecode \ +%if %{without suse_ocaml_opt_debug_package} + %%define debug_package %%{nil} \ + %%define __debug_install_post %%{nil} \ +%endif %%define _lto_cflags %%{nil} \ %%{nil} -%%ocaml_native_compiler 1 %%_find_debuginfo_dwz_opts %%{nil} -%else -%%ocaml_preserve_bytecode \ - %%undefine _build_create_debug \ - %%define __arch_install_post export NO_BRP_STRIP_DEBUG=true \ - %%define _lto_cflags %%{nil} \ - %%{nil} -%%ocaml_native_compiler 0 -%endif # Create file list for base pkg and base-devel pkg # Files with known extensions or names are written to 'files' or 'files.devel' @@ -157,14 +162,14 @@ LICENSE.txt \\\ ;\ do\ -%if 0%{?suse_version} > 1315 +%if %{with suse_ocaml_use_rpm_license_macro} license_macro='license' ;\ %else license_macro='doc' ;\ %endif test -f "${license}" && echo "%%%%${license_macro} ${license}" >> '%%{name}.files.license' ;\ done ;\ - find %%{buildroot}%%{ocaml_standard_library} -name '*.cmxs' -exec chmod -v a-x '{}' +\ + find %%{buildroot}%%{ocaml_standard_library} -name '*.cmxs' -exec chmod -v a-x '{}' + ;\ find %%{buildroot}%%{ocaml_standard_library} ! -type d | awk\\\ -v "buildroot=%%{buildroot}"\\\ -v "ocaml_standard_library=%%{ocaml_standard_library}"\\\ @@ -528,9 +533,8 @@ # _EOF_ -%files +%files -f files.fileattrs +%defattr(-,root,root,-) %{_rpmmacrodir}/* -%{_rpmconfigdir}/fileattrs -%attr(755,root,root) %{_rpmconfigdir}/*.sh %changelog