Jump to content
Sign in to follow this  
tele

Budowanie Spec - Conflicts With File From Package

Recommended Posts

Zbudowalem paczke, instaluje

# rpm -ivh libgcrypt20-1.6.1-1.rpm
Preparing...                ########################################### [100%]
    file /usr/bin/dumpsexp from install of libgcrypt20-1.6.1-1.i586 conflicts with file from package libgcrypt11-1.5.3-1.i586
    file /usr/bin/hmac256 from install of libgcrypt20-1.6.1-1.i586 conflicts with file from package libgcrypt11-1.5.3-1.i586
    file /usr/bin/libgcrypt-config from install of libgcrypt20-1.6.1-1.i586 conflicts with file from package libgcrypt11-1.5.3-1.i586

W pliku spec  mialem

Obsoletes:     %{name} < %version

Zgaduje ze przez to ze uzywam " major " czyli dodatkowego numerka,

tak jak czasami jest uzywane w kernelu w wersji developerskiej.

( w tym przypadku uzylem major=20 )

 

generalnie jak zrobie

# rpm -ivh --replacefiles libgcrypt20-1.6.1-1.i586.rpm
Preparing...                ########################################### [100%]
   1:libgcrypt20            ########################################### [100%]

to widac ze zadziala, (sek w tym ze teraz mam zainstalowane  libgcrypt11 i ibgcrypt20 )

ale jesli chcialbym by to normalnie dzialalo,

to musze te pliki w sekcji %pre pierw usunac ?

czy jest jakas magiczna opcja Obsoletes: ktora dziala z paczkami uzywajacymi " major " ?

Share this post


Link to post
Share on other sites

A czy libgcrypt11 i libgcrypt20, są kompatybilne ze sobą?

Zauważ, że makro %{name} dla jednego pakietu to libgcrypt11 a dla drugiego to libgcrypt20

Prawdopodobnie musisz użyć Conflicts: libgcrypt11

Share this post


Link to post
Share on other sites

Probowalem zastapic

Obsoletes:     %{name} < %version

lub

Obsoletes:     libgcrypt11

lub

Conflicts:      libgcrypt11

i kicha, nadal jest konflikt plikow, czyli nie zastepuje starszej paczki i tworzy sie druga.

 

Edytowane

Dobra poddaje sie, dzieki za pomoc.

Share this post


Link to post
Share on other sites

Ten akurat pakiet na PCLinuxOS probowalem zrobic,

wlasciwie zaktualizowac, ale nadzialem sie na taki zonk.

Generalnie "major" Jest stosowany od dawna,

obie dystrybucje korzystaja z tego samego pakietu rpm,

jedynie co je wyroznia to drobne nowosci,

w pclosie rpm 4.8 -2013(poprawka na wiki jest 2010), w fedorze 4.11.2 -2014

( w Fedorze aktualizacje sa chyba czesciej ) To co jeszcze moze jeszcze moze roznic jakies dodatkowe makra,

ale generalnie Mageia, Rosa, PCLinuxOS, OpenSuse, CentOS itd. kozystaja z tego samego.

Dlatego pisalem wyzej.

 

Edytowane

Dobra poddaje sie, dzieki za pomoc.

 

W kazdym razie gdyby mi dzialalo jak trzeba, to podejrzewam ze

Obsoletes:     libgcrypt11

powinno wystarczec i dzialac, co znaczy "Zastepuje:     libgcrypt11".

Share this post


Link to post
Share on other sites

Wszystko rozbija się właśnie o "jakies dodatkowe makra".

 

Pakiet zbuduj na pliku spec z wersji 1.5.3-1, nie zmieniaj major, lecz tylko Version: ustaw na 1.6.1. Jeżeli się zbuduje (libgcrypt11-1.6.1-1.i586) to powinien przy instalacji wymienić wersję 1.5.3 zainstalowaną w systemie.

%define major 11
%define libname %mklibname gcrypt %{major}
%define develname %mklibname gcrypt -d

%package -n %{libname}
Summary:	GNU Cryptographic library
Group:		System/Libraries
Provides:	%{name} = %{version}-%{release}

%package -n %{develname}
Summary:	Development files for GNU cryptographic library
Group:		Development/Other
Requires:	%{libname} = %{version}-%{release}
Provides:	%{name}-devel = %{version}-%{release}
Obsoletes:	%mklibname -d gcrypt 11

Jak widać pakiet devel  blokuje (dezaktywuje) pakiet z major 11, twój jest ustawiony jako dodatkowy przez major 20, lecz dostarcza tych samych plików, przez co wywala błąd przy instalacji.

 

Edit:

Instalując przez rpm -ivh --replacefiles libgcrypt20-1.6.1-1.i586.rpm, uszkadzasz bazę pakietów, stąd masz dwa zainstalowane gdy faktycznie jest tylko jeden.

Share this post


Link to post
Share on other sites

Ale generalnie jakbym zrobil cos takiego

# 32/64bit spec
#
%define major 20



Summary:    GNU Cryptographic library
Name:        libgcrypt
Version:    1.6.1
Release:    %mkrel 14
License:    LGPLv2+
Group:        System/Libraries
Url:        http://www.gnupg.org/
Source0:    ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-%{version}.tar.xz
BuildRequires:    libgpg-error-devel >= 0.5
BuildRoot:    %{_tmppath}/libgcrypt-%{version}-buildroot

#Provides:     libgcrypt
#Obsoletes:    libgcrypt11


%description
Libgcrypt is a general purpose cryptographic library
based on the code from GNU Privacy Guard.  It provides functions for all
cryptograhic building blocks: symmetric ciphers
(AES,DES,Blowfish,CAST5,Twofish,Arcfour), hash algorithms (MD5,
RIPE-MD160, SHA-1, TIGER-192), MACs (HMAC for all hash algorithms),
public key algorithms (RSA, ElGamal, DSA), large integer functions,
random numbers and a lot of supporting functions.


Provides:     libgcrypt
Obsoletes:    libgcrypt11


%prep
%setup -q

%build
%configure2_5x                              \
                      --enable-random=linux \
                      --enable-m-guard                   

%make

%install
rm -rf %{buildroot}
%makeinstall_std

%clean
rm -rf %{buildroot}


%files
%defattr(-,root,root)
%doc AUTHORS README NEWS THANKS TODO
%{_bindir}/*
%{_libdir}/lib*.so.%{major}
%{_libdir}/lib*.so.%{major}.*
%{_datadir}/man/man1/hmac256.1.bz2
%doc ChangeLog README.*
%{_includedir}/*.h
%{_libdir}/lib*.la
%{_libdir}/lib*.so
%{_datadir}/aclocal/*
%{_infodir}/gcrypt.info*


%changelog
* Tue Aug 20 2014 nobody <nobody>
- 1.6.1

To  libgcrypt11 powinno byc zastapione przez libgcrypt, no nie ?

 

Edit:

Jak zrobilem cos takiego to zauwazylem

- konfiktu plikow juz nie ma przy instalacji

- miejsce gdzie dam

Provides:     libgcrypt
Obsoletes:    libgcrypt11

ma znaczenie, bo tam gdzie mam zahaszowane (kratke) to powodobalo mi ze pakiet chcial biblioteki ktore juz mam zainstalowane, co wydaje sie dosc dziwne, poniewaz nie powinno pytac o biblioteki, a o paczki tylko.

No chyba ze rpm ma jakas ukryta funkcje o ktorej nie wiem.

Pozniej sobie na Fodorze porownam .

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...