Error: directories not owned by a package

I have error telling that directory makefile script should create aren’t owned by a package.


  412s] libgreattao2-devel-1.98.0-10.1.x86_64.rpm: directories not owned by a package:
  412s]  - /usr/include/libgreattao
  412s] libgreattao2-module-qt4-1.98.0-10.1.x86_64.rpm: directories not owned by a package:
  412s]  - /usr/lib64/mWidgets_modules
  412s] libgreattao2-module-gtk2-1.98.0-10.1.x86_64.rpm: directories not owned by a package:
  412s]  - /usr/lib64/mWidgets_modules
  413s] libgreattao2-1.98.0-10.1.x86_64.rpm: directories not owned by a package:
  413s]  - /usr/lib64/mWidgets_modules
  413s]  - /usr/share/tao-design
  413s]  - /usr/share/tao-design/mWidgets
  413s]  - /usr/share/tao-design/mWidgets/Objects
  413s]  - /usr/share/tao-design/mWidgets/app
  413s]  - /usr/share/tao-design/mWidgets/desktop
  413s]  - /usr/share/tao-design/mWidgets/desktop/dialogs
  413s]  - /usr/share/tao-design/mWidgets/system
  413s]  - /usr/share/tao-design/modern
  413s]  - /usr/share/tao-design/modern/desktop
  413s]  - /usr/share/tao-design/modern/desktop/dialogs

The spec file is:


Name:           libgreattao2
Version:    1.98.0
Release:    2
License:    LGPL
BuildRequires:    openssl-devel SDL2_image-devel libsell-devel libnotify-devel glib2-devel
Requires:       openssl SDL2_image libsell libnotify glib2
BuildRoot:      %{_tmppath}/libgreattao2-1.98.0
Summary:    Library to generating interfaces
Source:        libgreattao2-1.98.0.tar.gz    

%description
Library responsible for interaction with user. It could works in one of three modes: shell, normal, network. In normal mode it could to load one of backend: GTK+, Qt or console. It also using xml-like files with rules to generate GUI/CUI.

%prep
%setup -q

%build
make %{?_smp_mflags} INSTALLPATH=/usr/ -C Modules/common
make %{?_smp_mflags} INSTALLPATH=/usr/ -C Modules/GTK+
make %{?_smp_mflags} INSTALLPATH=/usr/ -C Modules/console
( cd Modules/QT5; ./make.sh )
make %{?_smp_mflags} INSTALLPATH=/usr/

%install
mkdir -p ${RPM_BUILD_ROOT}/usr/share/tao-design
make install INSTALLPATH=${RPM_BUILD_ROOT}/usr %{?_smp_mflags}

%files
%defattr(-,root,root)
%doc LICENSE
/usr/%_lib/libgreattao.so.2.0
/usr/%_lib/libgreattao.so.2
/usr/%_lib/libgreattao.so
/usr/share/tao-design/mWidgets/config
/usr/share/tao-design/mWidgets/system/task_information
/usr/share/tao-design/mWidgets/app/file_manager
/usr/share/tao-design/mWidgets/app/text_editor
/usr/share/tao-design/mWidgets/Objects/MultipleObjects
/usr/share/tao-design/mWidgets/Objects/SingleObject
/usr/share/tao-design/mWidgets/Objects/Attributes
/usr/share/tao-design/mWidgets/desktop/dialogs/progress_dialog
/usr/share/tao-design/mWidgets/desktop/dialogs/config_dialog
/usr/share/tao-design/mWidgets/desktop/dialogs/message_dialog
/usr/share/tao-design/mWidgets/desktop/dialogs/selection
/usr/share/tao-design/mWidgets/desktop/dialogs/question_dialog
/usr/share/tao-design/mWidgets/system/tray
/usr/share/tao-design/modern/config
/usr/share/tao-design/modern/desktop/dialogs/question_dialog
/usr/share/tao-design/modern/desktop/dialogs/config_dialog
/usr/%_lib/mWidgets_modules/tao-console.so.1.0


%package devel
Summary:  Development files for libgreattao
Requires:  %{name} = %{version}

%description devel
Development files for libgreattao\

%files devel
/usr/include/libgreattao/tao.h
/usr/include/libgreattao/network.h
/usr/include/libgreattao/config.h
/usr/include/libgreattao/log.h

%package module-gtk2
Summary:    Gtk+2 backend for libgreattao
Requires:  %{name} = %{version}, gtk2
BuildRequires: gtk2-devel

%description module-gtk2
Backend for libgreattao, which could be used, when libgreattao working in normal mode

%files module-gtk2
/usr/%_lib/mWidgets_modules/tao-gtk.so.1
/usr/%_lib/mWidgets_modules/tao-gtk.so.1.0
/usr/%_lib/mWidgets_modules/tao-gtk.so

%package module-qt4
Summary:    Qt4 backend for libgreattao
Requires:  %{name} = %{version}, libqt4
BuildRequires: libqt4-devel

%description module-qt4
Backend for libgreattao, which could be used, when libgreattao working in normal mode

%files module-qt4
/usr/%_lib/mWidgets_modules/tao-Qt5.so.1.0



Hi
You need to add the %dir directive for thos directories.

You don’t need to specify every file, use wildcards… and use the rpm macros


%{_prefix} = /usr
%{_libdir} = /usr/lib{arch)
%{_includedir} = /usr/include
%{_datadir} = /usr/share

For example all you need is;


%{_datadir}/tao-design/

Not the list of files…

You also need to include ownership, for example your devel package could/should be;


%files devel
%defattr(-,root,root,-)
%dir %{_includedir}/libgreattao
%{_includedir}/libgreattao

Thanks! Now I have another problem, but it is related to another topic.