Upload entire catalog with sources

I have large project and I would like to create packages. OpenSuSE Build Service allows me to upload single source file instead tarball. I know, that .src.rpm are supported, but this is probably not normal tarball.

How to upload my sources?

Look at all the other packages in the OBS. Source Tar Balls are widely used :slight_smile:

So, I must to read how to create srpm.

You upload source (tar ball or files etc.) and a build description (RPM spec file or DPGK .dsc file etc.) and then the OBS builds binary (.rpm, .deb) and source packages (.srpm) for you.

I have got this message, when building rpm-s:


cp: cannot create regular file '/usr/local/lib64/libsell.so.1.0': Permission denied

The OBS builds as user not as root. You can only create directories/files in the rpm build root. See this example for details rpm: Using a build root

I have reached next step in my package build process, but there’s errors:


   59s] RPMLINT report:
   59s] ===============
   60s] (none): E: badness 11200 exceeds threshold 1000, aborting.
   60s] libsell.i586: W: shlib-policy-nonversioned-dir /usr/share/doc/packages/libsell
   60s] Your shared library package contains non-versioned directories. Those will not
   60s] allow to install multiple versions of the package in parallel.
   60s] 
   60s] libsell.i586: E: shlib-policy-name-error (Badness: 10000) libsell1
   60s] Your package contains a single shared library but is not named after its
   60s] SONAME.
   60s] 
   60s] libsell.i586: W: no-url-tag
   60s] libsell.src: W: no-url-tag
   60s] The URL tag is missing. Please add a http or ftp link to the project location.
   60s] 
   60s] libsell.i586: W: no-changelogname-tag
   60s] libsell.src: W: no-changelogname-tag
   60s] There is no changelog. Please insert a '%changelog' section heading in your
   60s] spec file and prepare your changes file using e.g. the 'osc vc' command.
   60s] 
   60s] libsell.i586: E: library-without-ldconfig-postun (Badness: 300) /usr/lib/libsell.so.1.0
   60s] libsell.i586: E: library-without-ldconfig-postun (Badness: 300) /usr/lib/libsell.so.1
   60s] This package contains a library and provides no %postun scriptlet containing a
   60s] call to ldconfig.
   60s] 
   60s] libsell.i586: E: library-without-ldconfig-postin (Badness: 300) /usr/lib/libsell.so.1.0
   60s] libsell.i586: E: library-without-ldconfig-postin (Badness: 300) /usr/lib/libsell.so.1
   60s] This package contains a library and provides no %post scriptlet containing a
   60s] call to ldconfig.
   60s] 
   60s] libsell.i586: W: files-duplicate /usr/lib/libsell.so.1 /usr/lib/libsell.so:/usr/lib/libsell.so.1.0
   60s] libsell.i586: I: binary-or-shlib-calls-gethostbyname /usr/lib/libsell.so.1.0
   60s] libsell.i586: I: binary-or-shlib-calls-gethostbyname /usr/lib/libsell.so
   60s] libsell.i586: I: binary-or-shlib-calls-gethostbyname /usr/lib/libsell.so.1
   60s] The binary calls gethostbyname(). Please port the code to use getaddrinfo().
   60s] 
   60s] 2 packages and 0 specfiles checked; 5 errors, 6 warnings.
   60s] 
   60s] ### WATCHDOG MARKER START ###
   63s]    47.440993] SysRq : Power Off
   63s]    47.442601] reboot: Power down
   75s] ### WATCHDOG MARKER END ###

Previously, when I didn’t create symlinks to my library, I have got another errors. My .spec file looks like this:


Name:           libsell
Version:        0.0.1
Release:        1
License:        LGPL-3.0
BuildRoot:      %{_tmppath}/libsell
Summary:        Simple extensible log library
Source:         libsell.tar.gz

%description
Simple and extensible log library. Application can configure this library or order this library to read configuration variable called SELL_RULES. By setting SELL_RULES variable, user can filter messages, selecting output files, etc.

%prep
%setup -q

%build
make %{?_smp_mflags} 

%install
mkdir -p $RPM_BUILD_ROOT/usr/%_lib 
install -m755 $RPM_BUILD_DIR/libsell-0.0.1/libsell.so.1.0 $RPM_BUILD_ROOT/usr/%_lib/libsell.so.1.0
install -m755 $RPM_BUILD_DIR/libsell-0.0.1/libsell.so.1 $RPM_BUILD_ROOT/usr/%_lib/libsell.so.1
install -m755 $RPM_BUILD_DIR/libsell-0.0.1/libsell.so $RPM_BUILD_ROOT/usr/%_lib/libsell.so

%files
%defattr(-,root,root)
%doc LICENSE
/usr/%_lib/libsell.so.1.0
/usr/%_lib/libsell.so.1
/usr/%_lib/libsell.so

Thanks for help.

I saw the above post by incident. It is much better to start a new thread when you have a new problem. The title of the new thread should of course communicate the new problem. That is the best thing you can do to draw attention to your new problem. Hanging it at the end of an old one will not realy draw the attention of many people.