Bug 366121

Summary: Review Request: httrack - Website copier and offline browser
Product: [Fedora] Fedora Reporter: Debarshi Ray <debarshir>
Component: Package ReviewAssignee: Mamoru TASAKA <mtasaka>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: fedora-package-review, i, mtasaka, notting
Target Milestone: ---Flags: mtasaka: fedora-review+
gwync: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: httrack-3.47.27-1.el6 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2007-11-27 19:23:10 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Debarshi Ray 2007-11-04 21:01:58 UTC
Spec URL: http://rishi.fedorapeople.org/httrack.spec
SRPM URL: http://rishi.fedorapeople.org/httrack-3.41.3-1.fc8.src.rpm


Description:

HTTrack is a free and easy-to-use offline browser utility.

It allows the user to download a World Wide Web site from the Internet to a
local directory, building recursively all directories, getting HTML, images,
and other files from the server to your computer. HTTrack arranges the
original site's relative link-structure. HTTrack can also update an existing
mirrored site, and resume interrupted downloads. HTTrack is fully
configurable, and has an integrated help system.

Comment 1 Debarshi Ray 2007-11-04 22:04:37 UTC
One of the headers installed by httrack-devel includes the openssl-devel headers.

./src/htsbasenet.h:78:#include <openssl/ssl.h>
./src/htsbasenet.h:79:#include <openssl/crypto.h>
./src/htsbasenet.h:80:#include <openssl/err.h>

However there does not seem to be any need for BuildRequires: openssl-devel. Is
this alright? Why install headers which include stuff which are not even needed
for building the library?

[rishi@ginger i386]$ rpmlint httrack-devel-3.41.3-1.fc8.i386.rpm 
httrack-devel.i386: W: dangling-relative-symlink /usr/lib/httrack/liblog.so
liblog.so.1.0.0
httrack-devel.i386: W: dangling-relative-symlink /usr/lib/httrack/libfilename.so
libfilename.so.1.0.0
httrack-devel.i386: W: dangling-relative-symlink
/usr/lib/httrack/libcontentfilter.so libcontentfilter.so.1.0.0
httrack-devel.i386: W: dangling-relative-symlink
/usr/lib/httrack/libfilenameiisbug.so libfilenameiisbug.so.1.0.0
httrack-devel.i386: W: dangling-relative-symlink
/usr/lib/httrack/libchangecontent.so libchangecontent.so.1.0.0
httrack-devel.i386: W: dangling-relative-symlink
/usr/lib/httrack/liblistlinks.so liblistlinks.so.1.0.0
httrack-devel.i386: W: dangling-relative-symlink
/usr/lib/httrack/libdisplayheader.so libdisplayheader.so.1.0.0
httrack-devel.i386: W: dangling-relative-symlink
/usr/lib/httrack/libfilename2.so libfilename2.so.1.0.0
httrack-devel.i386: W: dangling-relative-symlink /usr/lib/httrack/libsimple.so
libsimple.so.1.0.0
httrack-devel.i386: W: dangling-relative-symlink
/usr/lib/httrack/libbaselinks.so libbaselinks.so.1.0.0
httrack-devel.i386: E: only-non-binary-in-usr-lib
[rishi@ginger i386]$ 

Running 'nm' on the installed *.so* files from the RPM does not return any
symbols. However if they are installed from the tarball (./configure
--disable-static --prefix=/usr && make && make install DESTDIR=/opt) then 'nm'
displays the symbols.

Also I can not understand the "dangling-relative-symlink" warning. All the *.so
files in the -devel, when installed are properly linked to their corresponding
*.so.* counterparts.

Comment 2 Debarshi Ray 2007-11-04 22:31:06 UTC
Koji build: http://koji.fedoraproject.org/koji/taskinfo?taskID=225943

Comment 3 Mamoru TASAKA 2007-11-10 14:39:41 UTC
Well,

* About dangling-relative-symlink:
  - Well, this "dangling-relative-symlink" warnings themselves 
    can be ignored when you check "installed" rpms by rpmlint like
    $ rpmlint httrack httrack-devel.

    However, for this package some points need considering.
    Actually why do the symlinks under %_libdir/httrack needed for
    -devel package? The "real" binaries which these symlinks point to
    are not under ldconfig search path so no external libraries or
    binaries can be linked against these binaries.
    For me the files under %_libdir/httrack are modules loaded
    by httrack binaries only and all symlinks under %_libdir/httrack
    and included in -devel package are not needed.

* openssl header used?
  - From %_includedir/httrack/htsbasenet.h
-----------------------------------------------------
    77  /*
    78  #include <openssl/ssl.h>
    79  #include <openssl/crypto.h>
    80  #include <openssl/err.h>
    81  */
-----------------------------------------------------
    All in comments!!

By the way..
* undefined-non-weak-symbol
  - $ rpmlint httrack shows
-----------------------------------------------------
httrack.i386: W: undefined-non-weak-symbol /usr/lib/libhtsjava.so.2.0.41 hts_malloc
httrack.i386: W: undefined-non-weak-symbol /usr/lib/libhtsjava.so.2.0.41 get_ext
httrack.i386: W: undefined-non-weak-symbol /usr/lib/libhtsjava.so.2.0.41 fconv
httrack.i386: W: undefined-non-weak-symbol /usr/lib/libhtsjava.so.2.0.41
get_httptype
httrack.i386: W: undefined-non-weak-symbol /usr/lib/libhtsjava.so.2.0.41 is_dyntype
-----------------------------------------------------
    And there is a symlink "libhtsjava.so" which points to 
    libhtsjava.so.2.0.41
    - If libhtsjava.so is supposed to be able to be linked from external
      libraries/binaries, then these undefined non-weak symbols should
      be fixed because these symbols canse linkage failure.
      It seems all these symbols are provided from libhttrack.so, so
      making htsjava.so link against libhttrack.so should fix this issue.

* generic header file name and generic macro name in
  header file.
  - Header files with generic header names like "config.h" and
    generic macros like HAVE_STDLIB_H or so is very troublesome.
    Please see the explanation by Hans in
    https://bugzilla.redhat.com/show_bug.cgi?id=232342
    or
    https://bugzilla.redhat.com/show_bug.cgi?id=208034#c43
    and
    - Remove config.h or at lease rename config.h
    - config.h is used in htsglobal.h and some generic macro names
      are used. Modify the macro names to avoid name space conflict.

* Dependency for firefox or so
  - %{_bindir}/webhttrack seems to require some browser so
    this package should require some browser.
    - If possible, change the script so that webhttrack uses
      xdg-open first and make this package require "xdg-utils".

* File entry
  - By the way, the file entries
-----------------------------------------------------------------
%files
%dir %{_datadir}/%{name}
%{_datadir}/%{name}/*
-----------------------------------------------------------------
    can be replaced by
-----------------------------------------------------------------
%files
%{_datadir}/%{name}/
-----------------------------------------------------------------


Comment 4 Debarshi Ray 2007-11-12 17:29:27 UTC
(In reply to comment #3)
> * About dangling-relative-symlink:

Fixed. I have contacted upstream for confirmation. Looking at the Makefiles, I
gather that the libraries under /usr/lib/httrack were created from the libtest/
files, which are appear to mere examples.

> * openssl header used?
>
> [...]
>
>     All in comments!!

Silly me!

However we do need a 'Requires: openssl' for the main package because
src/htsmodules.c tries to dlopen libssl.so*.
 
> By the way..
> * undefined-non-weak-symbol
 
Not yet fixed. I am looking into this.

> * generic header file name and generic macro name in
>   header file.

Not yet fixed.

Many of the macros are used to differentiate between #ifdef _WIN32 and so on.
Clearly we would not have _WIN32 defined in Fedora -- Fedora is GNU/Linux and
not Windows. So can I just remove all those _WIN32 (and similar) specific
portions from htsglobal.h ?

> * Dependency for firefox or so

Fixed.

> * File entry
>   - By the way, the file entries
>
> [...]
>
>     can be replaced by

I have used this style in all my specs, since I like to differentiate between
directories and files. Maybe this sounds silly, but I hope you will allow it. :-)

Spec: http://rishi.fedorapeople.org/httrack.spec
SRPM: http://rishi.fedorapeople.org/httrack-3.41.3-2.fc8.src.rpm

Comment 5 Mamoru TASAKA 2007-11-13 16:35:50 UTC
Well, I have not checked your -2 srpm, however:

(In reply to comment #4)
>> * generic header file name and generic macro name in
>>   header file.
> Not yet fixed.
> 
> Many of the macros are used to differentiate between #ifdef _WIN32 and so on.
> Clearly we would not have _WIN32 defined in Fedora -- Fedora is GNU/Linux and
> not Windows. So can I just remove all those _WIN32 (and similar) specific
> portions from htsglobal.h ?

Well, the most problematic file is config.h
- At first, the name "config.h" is too generic.
- And this file contains many generic macros.

So A
- At first config.h must be removed.
- Then as htsglobal.h contains some generic macros
  defined in config.h like
--------------------------------------------------------
   124  #else
   125  
   126  #include "config.h"
   127  
   128  #ifndef FTIME
   129  #define HTS_DO_NOT_USE_FTIME
   130  #endif
   131  
   132  #ifndef SETUID
   133  #define HTS_DO_NOT_USE_UID
   134  #endif
   135  
-----------------------------------------------------
  Please rename FTIME and SETUID and define/undefine HTS_FTIME
  (for example) in some places, for example
  (by the way, are these lines really needed?)


> 
> > * Dependency for firefox or so
> 
> Fixed.
> 
> > * File entry
> >   - By the way, the file entries
> >
> > [...]
> >
> >     can be replaced by
> 
> I have used this style in all my specs, since I like to differentiate between
> directories and files. Maybe this sounds silly, but I hope you will allow it. :-)
> 
> Spec: http://rishi.fedorapeople.org/httrack.spec
> SRPM: http://rishi.fedorapeople.org/httrack-3.41.3-2.fc8.src.rpm



Comment 6 Debarshi Ray 2007-11-22 04:10:28 UTC
Spec: http://rishi.fedorapeople.org/httrack.spec
SRPM: http://rishi.fedorapeople.org/httrack-3.42-1.fc8.src.rpm

I have tried to fix the generic headers and macros issue. Most of those macros
were used to differentiate Win32 based systems from UNIX based ones, so I have
simply removed them.

Comment 7 Mamoru TASAKA 2007-11-22 12:39:34 UTC
Now it seems okay for namespace conflicts of header files
and macros in header files.

For 3.42-1:
* Version
  - Maybe it is better that rpm version of current httrack
    is set as 3.42.1.

* openssl dependency
  - Maybe it is better that openssl dependency is version
    specific, i.e. "Requries: openssl = 0.9.8b" ?

* undefined-non-weak-symbol
  - Now please fix undefined non-weak symbols on libhtsjava.so.2.
    Making this library linked against libhttrack.so should
    fix this problem (I guess).

* Documents
  - Maybe "history.txt" can be added to %doc?

Comment 8 Debarshi Ray 2007-11-22 18:30:42 UTC
(In reply to comment #7)
 
> For 3.42-1:
> * Version
>   - Maybe it is better that rpm version of current httrack
>     is set as 3.42.1.

The latest version is 3.42. Even though the tarball contains a 3.42.1 directory,
we can not trust this, since in the past we have had 3.41 ->  3.41-2 -> 3.41-3
-> 3.42 and the directory inside the tarball has not always been similar to the
release numbers. So I just want to ignore the directory name and use the version
number mentioned on the site and history.txt after replacing the '-' (if any)
with a '.'.

I will try to contact upstream to resolve this confusion for the future.

Comment 9 Debarshi Ray 2007-11-22 21:19:34 UTC
(In reply to comment #7)

> * openssl dependency

The minimum NEVRA of openssl in Fedora is openssl-0.9.8b-12.fc7. So the version
should not be needed in the Requires.
 
> * undefined-non-weak-symbol

Fixed.

> * Documents

It was already there as html/history.txt, but I have put it outside since the
links from html/index.html do not work correctly otherwise.

Spec: http://rishi.fedorapeople.org/httrack.spec
SRPM: http://rishi.fedorapeople.org/httrack-3.42-2.fc8.src.rpm
Koji: http://rishi.fedorapeople.org/httrack-3.42-2.fc8.src.rpm

Comment 10 Mamoru TASAKA 2007-11-23 12:20:31 UTC
(In reply to comment #9)
> (In reply to comment #7)
> > * openssl dependency
> 
> The minimum NEVRA of openssl in Fedora is openssl-0.9.8b-12.fc7. So the version
> should not be needed in the Requires.

I am thinking of the case when Fedora openssl is upgraded.
In that case adding "Requires: openssl = 0.9.8b" tells us that
httrack must be rebuilt (more properly, the patch applied must
be updated), like firefox upgrade.

Comment 12 Mamoru TASAKA 2007-11-24 09:08:40 UTC
Okay.

--------------------------------------------------
   This package (httrack) is APPROVED by me
--------------------------------------------------

Comment 13 Debarshi Ray 2007-11-24 12:15:45 UTC
New Package CVS Request
=======================
Package Name: httrack
Short Description: Website copier and offline browser
Owners: rishi
Branches: F-7 F-8
InitialCC: 
Cvsextras Commits: no

Comment 14 Kevin Fenzi 2007-11-26 17:18:02 UTC
cvs done.

Comment 15 Christopher Meng 2014-01-17 01:34:52 UTC
Package Change Request
======================
Package Name: httrack
New Branches: el6 epel7
Owners: cicku

Comment 16 Gwyn Ciesla 2014-01-17 12:58:24 UTC
Git done (by process-git-requests).

Comment 17 Fedora Update System 2014-01-19 02:11:27 UTC
httrack-3.47.27-1.el6 has been submitted as an update for Fedora EPEL 6.
https://admin.fedoraproject.org/updates/httrack-3.47.27-1.el6

Comment 18 Fedora Update System 2014-02-16 11:19:29 UTC
httrack-3.47.27-1.el6 has been pushed to the Fedora EPEL 6 stable repository.  If problems still persist, please make note of it in this bug report.