Get previous version of Source RPM in repository

How can I get previous Source RPM versions of GCC5 from a repository?

I have this repository for OpenSUSE 13.2.
http://download.opensuse.org/repositories/devel:/gcc/openSUSE_13.2/

This repository has upgraded GCC5 to 5.4, while I need the 5.3.1 package, same as OpenSUSE Leap 42.1 and SLES12 uses.

I tried getting the Source RPM from the Leap_42.1 repository, rebuild it on OpenSUSE 13.2, but was unsuccessful in that regard. Was then thinking perhaps if I could get the previous version from the 13.2 repository I would be able to rebuild the package.

Not sure why I was not able to compile and build the Source RPM for GCC5 taken from Leap 42.1


Processing files: libmpxwrappers0-5.3.1+r233831-6.1kspt.x86_64
Provides: libmpxwrappers.so.0()(64bit) libmpxwrappers.so.0(LIBMPXWRAPPERS_1.0)(64bit) libmpxwrappers0 = 5.3.1+r233831-6.1kspt libmpxwrappers0(x86-64) = 5.3.1+r233831-6.1kspt
Requires(interp): /sbin/ldconfig /sbin/ldconfig
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Requires(post): /sbin/ldconfig
Requires(postun): /sbin/ldconfig
Requires: libc.so.6()(64bit) libc.so.6(GLIBC_2.14)(64bit) libc.so.6(GLIBC_2.2.5)(64bit)
Conflicts: libmpxwrappers0
Processing files: libmpxwrappers0-32bit-5.3.1+r233831-6.1kspt.x86_64
Provides: libmpxwrappers.so.0 libmpxwrappers.so.0(LIBMPXWRAPPERS_1.0) libmpxwrappers0-32bit = 5.3.1+r233831-6.1kspt libmpxwrappers0-32bit(x86-64) = 5.3.1+r233831-6.1kspt
Requires(interp): /sbin/ldconfig /sbin/ldconfig
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Requires(post): /sbin/ldconfig
Requires(postun): /sbin/ldconfig
Requires: libc.so.6 libc.so.6(GLIBC_2.0) libc.so.6(GLIBC_2.1.3)
Conflicts: libmpxwrappers0-32bit
Checking for unpackaged file(s): /usr/lib/rpm/check-files /home/sverre/rpmbuild/BUILDROOT/gcc5-5.3.1+r233831-6.1kspt.x86_64
error: Installed (but unpackaged) file(s) found:
   /usr/lib64/gcc/x86_64-suse-linux/5/include-fixed/X11/Xw32defs.h
   /usr/lib64/gcc/x86_64-suse-linux/5/include-fixed/boost/predef/os/linux.h
   /usr/lib64/gcc/x86_64-suse-linux/5/include-fixed/boost/predef/os/unix.h
   /usr/lib64/gcc/x86_64-suse-linux/5/include-fixed/hdf/hdfi.h
   /usr/lib64/gcc/x86_64-suse-linux/5/include-fixed/net-snmp/net-snmp-config.h
   /usr/lib64/gcc/x86_64-suse-linux/5/include-fixed/openssl/bn.h
   /usr/lib64/gcc/x86_64-suse-linux/5/include-fixed/ssl

I got the same error with libgo, but setting build_go to false solved that.

Forgot to mention. I have been trying to build the following gcc5 package on openSUSE 13.2

http://download.opensuse.org/repositories/openSUSE:/Leap:/42.1:/Update/standard/src/gcc5-5.3.1+r233831-6.1.src.rpm

Taken from the Leap 42.1 repository.

Hi
Go in and modify the spec file %files section to include the extra files… if using rpmbuild --rebuild it should be down in the SPECS directory.

You can’t.
New package versions replace older ones.

But you can build previous versions of a package on OBS.
Have a look at:

osc copypac --help

In particular:

    -r rev, --revision=rev
                        copy the specified revision.

The -r option also works with “co” to download the sources to your system:

wolfi@amiga:~/Desktop> osc co --help
checkout (co): Check out content from the repository

Check out content from the repository server, creating a local working
copy.

When checking out a single package, the option --revision can be used
to specify a revision of the package to be checked out.

When a package is a source link, then it will be checked out in
expanded form. If --unexpand-link option is used, the checkout will
instead produce the raw _link file plus patches.

usage:
    osc co PROJECT [PACKAGE] [FILE]
       osc co PROJECT                    # entire project
       osc co PROJECT PACKAGE            # a package
       osc co PROJECT PACKAGE FILE       # single file -> to current dir

    while inside a project directory:
       osc co PACKAGE                    # check out PACKAGE from project

    with the result of rpm -q --qf '%{DISTURL}
' PACKAGE
       osc co obs://API/PROJECT/PLATFORM/REVISION-PACKAGE


Options:
...
    -r rev, --revision=rev
                        checkout the specified revision. NOTE: if you checkout
                        the complete project this option is ignored!

Btw, there is a dedicated OBS sub forum too… :wink:

  1. Have you tried just copying the pre-compiled binary from LEAP on to your 13.2 system and tried it?
    I’ve done that in the past in other situations with success…

  2. If a gcc 4.x works for you, there are plenty to choose from in the existing 13.2 gcc repo with the following URI

http://download.opensuse.org/repositories/devel:/gcc/openSUSE_13.2/x86_64/

TSU

I don’t know enough about GCC to go messing around in the spec file.
I have downloaded the Source RPM, unpacked it and changed the build_go to false. I first had the exact same problem with packaging libgo RPM. However there is no build_mpxwrappers

Ok. Was not sure at first which forum to place this in. GCC is not exactly an application…

I could try the GCC 5.3.1 from OpenSUSE Leap 42.1, but I was afraid it perhaps could cause some conflicts building our software with it on OpenSUSE 13.2
However not sure how to get them, as there are many packages for gcc
http://download.opensuse.org/distribution/leap/42.1/repo/oss/
http://download.opensuse.org/update/leap/42.1/oss
If there was an utility to retrieve all gcc 5.3.1 packages installed on a system, or from the repositories.

I need the gcc 5.3.1 package. OpenSUSE 13.2 comes already with gcc 4.8 as default.