Bug 738556 - Review Request: gogoc - IPv6 TSP client for gogo6
Summary: Review Request: gogoc - IPv6 TSP client for gogo6
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Tom "spot" Callaway
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Keywords:
Depends On:
Blocks: 787520 790886
TreeView+ depends on / blocked
 
Reported: 2011-09-15 07:27 UTC by Juan Orti Alcaine
Modified: 2014-02-24 12:58 UTC (History)
6 users (show)

(edit)
Clone Of:
(edit)
Last Closed: 2012-04-20 03:07:34 UTC
tcallawa: fedora-review+
gwync: fedora-cvs+


Attachments (Terms of Use)
gogoc-sysvinit.tar.gz - fedora-sysvinit-default, gogoc (1.01 KB, application/x-gzip)
2012-02-15 10:09 UTC, shrek-m
no flags Details

Description Juan Orti Alcaine 2011-09-15 07:27:52 UTC
Spec URL: https://github.com/jorti/gogoc-fedora-package/blob/master/SPECS/gogoc.spec
SRPM URL: https://github.com/jorti/gogoc-fedora-package/blob/master/SRPMS/gogoc-1.2-6.fc15.src.rpm
Description: TSP is a control protocol used to establish and maintain static tunnels. The gogoCLIENT is used on the host computer to connect to a tunnel broker using the TSP protocol and to get the information for its tunnel. When it receives the information for the tunnel, the gogoCLIENT creates the static tunnel on its operating system.

This is my first package, so I need a sponsor. I based my work in the Debian version of the package and added a systemd service and a fix for some SELinux warnings.

Any advice is welcome. Thanks.

Comment 1 Juan Orti Alcaine 2011-09-15 07:54:43 UTC
Sorry, the URL was for the github web page, here are the files:

Spec URL: https://github.com/jorti/gogoc-fedora-package/raw/master/SPECS/gogoc.spec
SRPM URL: https://github.com/jorti/gogoc-fedora-package/raw/master/SRPMS/gogoc-1.2-6.fc15.src.rpm

Comment 2 Richard Shaw 2011-09-18 12:59:00 UTC
I can't sponsor you but I have some suggestions for your spec file.

1. What versions of Fedora/EPEL do you plan on building for? Depending on your answer certain sections or commands my be unnecessary.

I see you already excluded "BuildRoot" so you must not be planning on building for EPEL 5.

If you don't plan on building for EPEL at all then you can remove the whole "%clean" section.

Also, "rm -rf %{buildroot}" is no longer needed in %install.

The packaging guidelines[1] don't specify in which Fedora/EPEL version %defattr is no longer necessary, only "pre rpm 4.4".

2. I can't remember where I read it but the use of macros for standard shell commands (rm, make, install, etc.) is discouraged and doesn't aid readability.

3. You don't need the extra "/" between %{buildroot} and the other macros, %{_prefix} %{_bindir}, %{_sharedir}, etc. as it's already in the macros[2].


Hopefully someone will sponsor you soon. Until then it doesn't hurt to practice reviewing other packages[3].

Richard

[1] http://fedoraproject.org/wiki/Packaging:Guidelines
[2] http://fedoraproject.org/wiki/Packaging:RPMMacros
[3] http://fedoraproject.org/wiki/How_to_get_sponsored_into_the_packager_group

Comment 3 Juan Orti Alcaine 2011-09-20 09:18:22 UTC
(In reply to comment #2)
> 1. What versions of Fedora/EPEL do you plan on building for? Depending on your
> answer certain sections or commands my be unnecessary.

Hello, I have modified the spec file to adjust for the latest Fedora, and made the clean up you said.

Also, I have fixed some minor bugs in the scripts, now it works very well.

Here are the updated files:

Spec URL: https://github.com/jorti/gogoc-fedora-package/raw/v1.2-7/SPECS/gogoc.spec
SRPM URL: https://github.com/jorti/gogoc-fedora-package/raw/v1.2-7/SRPMS/gogoc-1.2-7.fc15.src.rpm

Comment 4 Richard Shaw 2011-09-20 16:19:18 UTC
Ok, some further suggestions :)

1. I don't think you need to pre-gzip man pages. Rpmbuild will take care of this for you. Additionally, the guidelines are nearly non-existent for man pages, but I don't think it's necessary to mark them as documentation in %files.

2. You can drop %deffattr... from %files.

3. You can drop INSTALL from the documentation as the point of providing a package is to abstract the end user from having to manually install :)

4. gogoc.conf and gogoc.conf.sample are still getting installed with 700 permissions instead of 644. I would try using "chmod 0644..." instead of using %attr in %files, i.e.:

chmod 0644 %{buildroot}%{_sysconfdir}/%{name}/%{name}.conf \
           %{buildroot}%{_sysconfdir}/%{name}/%{name}.conf.sample

5. The following files were getting added to the RPM twice:

/var/lib/gogoc/gogockeys.pub
/var/lib/gogoc/tsp-broker-list.txt
/var/lib/gogoc/tsp-last-server.txt
/var/run/gogoc/gogoc-rtadvd.conf

This is due to the fact that you were listing them once on the "%ghost" lines and again with:

%{_sharedstatedir}/%{name}
%{_localstatedir}/run/%{name}

since by default the above will include all files recursively from the named directory.

I changed it to:

%dir %{_sharedstatedir}/%{name}
%dir %{_localstatedir}/run/%{name}

and it seems to be fixed.

6. Make sure you run rpmlint on the spec and RPMS. It will catch a lot of common problems. For example:

$ rpmlint rpmbuild/gogoc/SPECS/gogoc.spec
rpmbuild/gogoc/SPECS/gogoc.spec:56: W: mixed-use-of-spaces-and-tabs (spaces: line 56, tab: line 3)
0 packages and 1 specfiles checked; 0 errors, 1 warnings.

You can use "expand" to fix the mixed-use-of-spaces-and-tabs.

$ rpmlint rpmbuild/gogoc/RPMS/x86_64/*.rpm
gogoc.x86_64: W: conffile-without-noreplace-flag /etc/gogoc/gogoc.conf.sample
gogoc.x86_64: E: non-executable-script /usr/share/gogoc/template/linux.sh 0644L /bin/sh
gogoc.x86_64: E: non-executable-script /etc/gogoc/template/linux.sh 0644L /bin/sh

I assume these are OK/intentional.

gogoc-debuginfo.x86_64: E: debuginfo-without-sources
2 packages and 0 specfiles checked; 3 errors, 1 warnings.

This needs to be fixed. It looks like the makefile could be stripping the binary. If it doesn't have an option to stop it, you'll need to patch the makefile.

Thanks,
Richard

Comment 5 Juan Orti Alcaine 2011-09-21 20:07:23 UTC
Thanks for your advices, here I am again:

(In reply to comment #4)
> 1. I don't think you need to pre-gzip man pages. Rpmbuild will take care of
> this for you. Additionally, the guidelines are nearly non-existent for man
> pages, but I don't think it's necessary to mark them as documentation in
> %files.

Done. There is a lack of documentation about this. I suppose that any change to the Guidelines in the wiki must be done by the Packaging Committee. There are a lot of unclear topics, I'll try to write them down.

> 2. You can drop %deffattr... from %files.

Done. 

> 3. You can drop INSTALL from the documentation as the point of providing a
> package is to abstract the end user from having to manually install :)

Done. I have dropped other files, like gogoc.conf.sample (redundant) and the GUI-LICENSING because I am not building this, the GUI is only for Windows. I'm talking with upstream about this and they confirmed the whole Linux package is BSD.

> 4. gogoc.conf and gogoc.conf.sample are still getting installed with 700
> permissions instead of 644. I would try using "chmod 0644..." instead of using
> %attr in %files, i.e.:

Done.

> 5. The following files were getting added to the RPM twice:
> 
> /var/lib/gogoc/gogockeys.pub
> /var/lib/gogoc/tsp-broker-list.txt
> /var/lib/gogoc/tsp-last-server.txt
> /var/run/gogoc/gogoc-rtadvd.conf

Done. I also have doubts about the log files. I have created the directory /var/log/gogoc and included it in the %files section. The only documentation I have found about this is: https://fedoraproject.org/wiki/PackagingDrafts/Logfiles but is very unclear and don't know if it's the "official" recommendation.
Should I mark the log files as %config %ghost <filename>? The program does logrotation itself, how do you control a whole dir of log files? 

> 6. Make sure you run rpmlint on the spec and RPMS. It will catch a lot of
> common problems. For example:

I have fixed the debuginfo problem adding "-g" in a header file, make wasn't honouring the parameters.
Now the results of rpmlint are:

$ rpmlint SPECS/gogoc.spec SRPMS/*.rpm RPMS/*/*.rpm
gogoc.x86_64: E: non-executable-script /usr/share/gogoc/template/linux.sh 0644L /bin/sh
gogoc.x86_64: E: non-executable-script /etc/gogoc/template/linux.sh 0644L /bin/sh
gogoc.x86_64: E: non-readable /etc/gogoc/gogoc.conf 0640L
gogoc.x86_64: W: log-files-without-logrotate /var/log/gogoc
gogoc-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gogoc-1.2/gogoc-1_2-RELEASE/gogoc-tsp/src/net/net_tcp6.c
3 packages and 1 specfiles checked; 4 errors, 1 warnings.

The first non-executable-script is the sample script in /usr/share. The second is the script actually used by the program, but it doesn't need execution because is called: "/bin/sh /etc/gogoc/template/linux.sh"
The non-readable is because the config file stores password in clear text
About log-files-without-logrotate, the program does log rotate itself.
I haven't patched the incorrect-fsf-address error because I have read I must not touch the license text. I have submitted the patch upstream for inclusion, actually, I have submitted all the patches to them. They don't have a bug tracker or public repository but told me they'll consider the inclusion in the next release.

The updated files:
SPEC file: https://github.com/jorti/gogoc-fedora-package/raw/v1.2-8/SPECS/gogoc.spec
SRPM file: https://github.com/jorti/gogoc-fedora-package/raw/v1.2-8/SRPMS/gogoc-1.2-8.fc15.src.rpm

Thank you.
Juan.

Comment 6 shrek-m 2012-02-08 00:01:02 UTC
can you create a installable
    gogo*.rpm
for testing  and provide a download ?

i do not want compile from source or install a srpm on my el6.2 server.

thanks in advance

Comment 7 shrek-m 2012-02-08 20:56:21 UTC
fyi,
sorry, it does not work under el6.2
RPM build errors: File must begin with "/": %{_unitdir}/gogoc.service

Steps to reproduce:

# LANG=C rpm -ivh /root/gogoc-1.2-8.fc15.src.rpm 
   1:gogoc                  warning: user juan does not exist - using root
warning: group juan does not exist - using root
warning: user juan does not exist - using root 2%)
warning: group juan does not exist - using root
warning: user juan does not exist - using root
warning: group juan does not exist - using root
warning: user juan does not exist - using root
warning: group juan does not exist - using root
warning: user juan does not exist - using root
warning: group juan does not exist - using root
warning: user juan does not exist - using root
warning: group juan does not exist - using root
warning: user juan does not exist - using root
warning: group juan does not exist - using root
warning: user juan does not exist - using root 4%)
warning: group juan does not exist - using root
warning: user juan does not exist - using root98%)
warning: group juan does not exist - using root
warning: user juan does not exist - using root
warning: group juan does not exist - using root
########################################### [100%]

[...]

# rpmbuild -ba gogoc.spec
[...]
+ /usr/lib/rpm/brp-strip
+ /usr/lib/rpm/brp-strip-static-archive
+ /usr/lib/rpm/brp-strip-comment-note
Processing files: gogoc-1.2-8.el6.i386
error: File must begin with "/": %{_unitdir}/gogoc.service
Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.8jQ9Ho
+ umask 022
+ cd /root/rpmbuild/BUILD
+ cd gogoc-1.2
+ DOCDIR=/root/rpmbuild/BUILDROOT/gogoc-1.2-8.el6.i386/usr/share/doc/gogoc-1.2
+ export DOCDIR
+ rm -rf /root/rpmbuild/BUILDROOT/gogoc-1.2-8.el6.i386/usr/share/doc/gogoc-1.2
+ /bin/mkdir -p /root/rpmbuild/BUILDROOT/gogoc-1.2-8.el6.i386/usr/share/doc/gogoc-1.2
+ cp -pr gogoc-1_2-RELEASE/CLIENT-LICENSE.TXT gogoc-1_2-RELEASE/README /root/rpmbuild/BUILDROOT/gogoc-1.2-8.el6.i386/usr/share/doc/gogoc-1.2
+ exit 0


RPM build errors:
    File must begin with "/": %{_unitdir}/gogoc.service

Comment 8 Richard Shaw 2012-02-08 21:04:06 UTC
You need:

BuildRequires: systemd-units

so the %{_unitdir} macro will be available.

Richard

Comment 9 shrek-m 2012-02-08 21:16:33 UTC
Thanks,

----
https://fedoraproject.org/wiki/Packaging:Guidelines:SystemdFilesystem locations
Packages with systemd unit files must put them into %{_unitdir}. %{_unitdir} evaluates to /lib/systemd/system on all Fedora systems (F-15+). Unit files are architecture independent (hence, not %{_lib}) and needed early in the boot process.

Please note that in order for the %{_unitdir} macro to exist, your package must have:

BuildRequires: systemd-units
----

but unfortunately it is not available in el6.2 (scientific linux), i assume systemd  will be in rhel 7.x

# yum list systemd*
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
 * epel: epel.uni-oldenburg.de
 * sl: ftp.scientificlinux.org
 * sl-security: ftp.scientificlinux.org
Error: No matching Packages to list



For now i have compiled  gogoc-1_2  from source
# make platform=linux all
# make platform=linux installdir=/usr/local/gogoc install

Comment 10 shrek-m 2012-02-08 21:19:47 UTC
Thanks,

----
https://fedoraproject.org/wiki/Packaging:Guidelines:SystemdFilesystem locations
Packages with systemd unit files must put them into %{_unitdir}. %{_unitdir} evaluates to /lib/systemd/system on all Fedora systems (F-15+). Unit files are architecture independent (hence, not %{_lib}) and needed early in the boot process.

Please note that in order for the %{_unitdir} macro to exist, your package must have:

BuildRequires: systemd-units
----

but unfortunately it is not available in el6.2 (scientific linux), i assume systemd  will be in rhel 7.x

# yum list systemd*
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
 * epel: epel.uni-oldenburg.de
 * sl: ftp.scientificlinux.org
 * sl-security: ftp.scientificlinux.org
Error: No matching Packages to list



For now i have compiled  gogoc-1_2  from source
# make platform=linux all
# make platform=linux installdir=/usr/local/gogoc install

Comment 11 Richard Shaw 2012-02-08 21:27:41 UTC
If you want to build for EL then you'll need to package a traditional SysV init script and use "%if %{?fedora}" and "%if %{?rhel}" type conditionals to know which one to install.

Comment 12 Juan Orti Alcaine 2012-02-09 10:50:05 UTC
I'm facing again the problem of debuginfo-without-sources in this package. I thought I have solved it, but today I rebuilt it in Fedora 16 and see the problem again.

The makefile overrides the enviroment CFLAGS variable, I have modified the makefile to compile with the RPM_OPT_FLAGS options, but the error persists. While compiling the RPM_OPT_FLAGS are used, but the resulting binaries don't have the debug info, maybe are there a problem in the linking?

Any help will be welcome.

Comment 13 Juan Orti Alcaine 2012-02-09 11:46:50 UTC
Another issue I have found is a couple of readme files with restrictive licenses:

- ./GUI-LICENSE.TXT : This license is for the GUI, which is not included in the unix tarball and is only in the windows version.

- ./gogoc-tsp/template/README : This file has a restrictive license header and list the shell scripts used to configure the tunnel, althought the scripts have their own header with the BSD license.

I have raised these concerns upstream, I quote their answer:

"Hi,
The idea is that the Linux/BSD version should be under a bsd style license while the windows one has a different license. Since they share a lot there might be some mixup in the license information. I need to check how it ended up in the Linux one. We want it to be compatible with Linux distributions."

Comment 14 Richard Shaw 2012-02-09 14:04:42 UTC
(In reply to comment #12)
> I'm facing again the problem of debuginfo-without-sources in this package. I
> thought I have solved it, but today I rebuilt it in Fedora 16 and see the
> problem again.
> 
> The makefile overrides the enviroment CFLAGS variable, I have modified the
> makefile to compile with the RPM_OPT_FLAGS options, but the error persists.
> While compiling the RPM_OPT_FLAGS are used, but the resulting binaries don't
> have the debug info, maybe are there a problem in the linking?

I haven't taken a look at the source, but if it the Makefile uses a simple CFLAGS = ... type assignment then you can easily use sed to change the "=" to "+=" which will make it append instead of replace the CFLAGS environment variable.

Something like:
(in %prep since this is essentially an on-the-fly patch)
sed -i 's|CFLAGS =|CFLAGS +=|g' Makefile

Richard

Comment 15 shrek-m 2012-02-09 23:56:37 UTC
Thanks for your work, gogoc-1.2-8 SRPM works great under fc16  :)

gogoc-1.2-8.fc16.i686.rpm
gogoc-debuginfo-1.2-8.fc16.i686.rpm


i have absolutely no knowledge with rpm-packaging :(
would it be useful if the radvd-maintainers could be sponsors or co-maintainers, if they have time ?

# rpm -q -changelog radvd
* Mo Okt 10 2011 Jiri Skala <jskala@redhat.com> - 1.8.2-2
- fixes CVE-2011-3602
[...]
* Mi Jan 13 2010 Jan Gorig <jgorig@redhat.com> - 1.5-1
- updated do latest upstream version
- fixed #554125 - added error message
[...]


---- gogoc has a radvd dependency ----
[root@macmini ~]# rpm -e --nodeps radvd
[root@macmini ~]# LANG=C rpm -Uvh rpmbuild/RPMS/i686/gogoc-1.2-8.fc16.i686.rpm 
error: Failed dependencies:
	radvd is needed by gogoc-1.2-8.fc16.i686


oops, is this correct that gogoc has no dependencies in yum if it is installed with rpm ?

[root@macmini ~]# LANG=C yum deplist gogoc
Loaded plugins: refresh-packagekit, security, upgrade-helper
Finding dependencies: 
[root@macmini ~]#
----/----



ok, no sponsor yet :(
if this package would be in "rawhide / testing" what would i do ?


rpmsave is only created if gogoc.conf was changed, this is correct.
# LANG=C rpm -e gogoc
warning: /etc/gogoc/gogoc.conf saved as /etc/gogoc/gogoc.conf.rpmsave



a few remarks as a user and admin:


0)
a gogoc-package in EPEL with an additional SysV init script for
RHEL5 would be ok until 2017/2020
RHEL6 would be ok until 2020/2023
RHEL7 should have systemd too ?!
http://en.wikipedia.org/wiki/Red_Hat_Enterprise_Linux



1)
my understanding is that you should add  "gcc-c++" ?
BuildRequires:  kernel-headers, openssl-devel, systemd-units, gcc-c++

---- gcc-c++ was not installed on my fc16 ----
make[1]: Leaving directory `/root/rpmbuild/BUILD/gogoc-1.2/gogoc-1_2-RELEASE/gogoc-pal'
Building gogoc-config module ...
make[1]: Entering directory `/root/rpmbuild/BUILD/gogoc-1.2/gogoc-1_2-RELEASE/gogoc-config'
mkdir -p objs
g++ -O2 -I. -I../gogoc-pal/out_inc -I../gogoc-pal/defs -Wall -D_REENTRANT -DNDEBUG   -c -o objs/namevalueparser.o src/namevalueparser.cc
make[1]: g++: Command not found
make[1]: *** [objs/namevalueparser.o] Error 127
make[1]: Leaving directory `/root/rpmbuild/BUILD/gogoc-1.2/gogoc-1_2-RELEASE/gogoc-config'
make: *** [check-gogoc-config] Error 2
error: Bad exit status from /var/tmp/rpm-tmp.jfjLA8 (%build)
----/----

# yum list gcc*
# yum install -y gcc-c++

and rpmbuild is ok.



2)
oops, debian-patches (why?) in the changelog but not in SOURCES ?
or is this i.e. the  "lp418176_client_v4.patch" ?
"Author: Philippe Gauthier <philippe.gauthier@deuxpi.ca>
Description: Fix crash on 64-bit architectures occuring when the client_v4 option is not set to "auto"."


[root@macmini ~]# rpm -q --changelog gogoc
* Di Sep 20 2011 Juan Orti Alcaine <j.orti.alcaine@gmail.com> - 1.2-8
- fixed debug symbols

* Mo Sep 19 2011 Juan Orti Alcaine <j.orti.alcaine@gmail.com> - 1.2-7
- spec file clean up
- systemd service fix

* Mi Sep 14 2011 Juan Orti Alcaine <j.orti.alcaine@gmail.com> - 1.2-6
- add Debian patches
- add systemd service
- license changed to BSD

[root@macmini ~]# ls  rpmbuild/SOURCES
gogoc-1.2-debug_info.patch
gogoc-1.2-dirpath.patch
gogoc-1.2-gcc_4.6_compile_fix.patch
gogoc-1.2-gogoc_conf_5.patch
gogoc-1.2-kill_radvd.patch
gogoc-1.2-lp418176_client_v4.patch
gogoc-1.2-mkdir.patch
gogoc-1_2-RELEASE.tar.gz
gogoc-1.2-selinux_fix.patch
gogoc.service



3)
- i do not know if this is the correct place for samples but it would be great if you could move the original  "gogoc.conf.sample"  into /usr/share/doc/gogoc-1.2/
it is always useful if a admin should need a new /etc/gogoc/gogoc.conf  ;)

- i do not know if the linux.sh should be under /etc/gogoc/template/  or under /usr/share/doc/gogoc-1.2/


a) your rpm file list
[root@macmini ~]# rpm -ql gogoc
/etc/gogoc
/etc/gogoc/gogoc.conf
/etc/gogoc/template
/etc/gogoc/template/linux.sh
/etc/sysconfig/gogoc
/lib/systemd/system/gogoc.service
/usr/bin/gogoc
/usr/share/doc/gogoc-1.2
/usr/share/doc/gogoc-1.2/CLIENT-LICENSE.TXT
/usr/share/doc/gogoc-1.2/README
/usr/share/gogoc
/usr/share/gogoc/template
/usr/share/gogoc/template/README
/usr/share/gogoc/template/linux.sh
/usr/share/man/man5/gogoc.conf.5.gz
/usr/share/man/man8/gogoc.8.gz
/var/lib/gogoc
/var/lib/gogoc/gogockeys.pub
/var/lib/gogoc/tsp-broker-list.txt
/var/lib/gogoc/tsp-last-server.txt
/var/log/gogoc
/var/run/gogoc
/var/run/gogoc/gogoc-rtadvd.conf


b) vs. gogo6-sourcecode - `make`
[root@srv01 ~]# ls  /usr/local/gogoc/ /usr/local/gogoc/bin/ /usr/local/gogoc/man/ /usr/local/gogoc/template/

/usr/local/gogoc/:
bin  gogoc-rtadvd.conf  man  template

/usr/local/gogoc/bin/:
gogoc       gogoc.conf.sample  tsp-broker-list.txt
gogoc.conf  gogockeys.pub      tsp-last-server.txt

/usr/local/gogoc/man/:
man5  man8

/usr/local/gogoc/template/:
linux.sh  README



4)
CAP_SYS_MODULE (deprecated)
i do not know if the warnings in /var/log/messages are a gogoc problem or fc16 / slel6.2 related.
the source md5sums are identical, it occurs on both systems everytime i start `gogoc`


a) FC16 - `rpmbuild` from your SRPM
  41177ed683cf511cc206c7782c37baa9    gogoc-1_2-RELEASE.tar.gz

# rpm -q gogoc
gogoc-1.2-8.fc16.i686

/var/log/messages
Feb  9 20:51:07 macmini kernel: : [ 3359.445191]
Loading kernel module for a network device with CAP_SYS_MODULE (deprecated).  Use CAP_NET_ADMIN and alias netdev-tun instead


b) SLEL6.2 - `make` source from gogo6.net
  41177ed683cf511cc206c7782c37baa9    gogoc-1_2-RELEASE.tar.gz

# grep -ir cap_ /root/gogoc-1_2-RELEASE/
/root/gogoc-1_2-RELEASE/gogoc-tsp/include/tsp_cap.h:#ifndef _TSP_CAP_H_
/root/gogoc-1_2-RELEASE/gogoc-tsp/include/tsp_cap.h:#define _TSP_CAP_H_

/var/log/messages
Feb  9 16:34:48 srv01 kernel:
Loading kernel module for a network device with CAP_SYS_MODULE (deprecated).  Use CAP_NET_ADMIN and alias netdev-tun instead

Comment 16 shrek-m 2012-02-12 10:24:22 UTC
OUTSCH!

i launched gogoc several times with  "-n" and got different german infos, errors, warnings, ...

i assume that you can get rid of some patches if you change the  linux.sh to  LANG=C
with LANG=C  instead  LANGUAGE=C  all is ok, even the "CAP_SYS_MODULE (deprecated)." are gone away.    propably  "if [ ! -z $PID ]; then"  is ok now.


within a few seconds it should be:
---- with  LANG=C ----
# /usr/local/gogoc/bin/gogoc -f /usr/local/gogoc/bin/gogoc.conf  -n
gogoCLIENT v1.2-RELEASE build Feb  8 2012-00:55:23  
Built on ///Linux srv01.localdomain 2.6.32-220.4.1.el6.i686 #1 SMP Mon Jan 23 17:25:22 CST 2012 i686 i686 i386 GNU/Linux///
Your IPv6 address is xxxxxx
Your IPv6 prefix is xxxxxxx
Your IPv6 DNS address is xxxxx
^C
----/----


---- original linux.sh from source ----
# head -20 /usr/local/gogoc/template/linux.sh 
#!/bin/sh
#
# $Id: linux.sh,v 1.3 2010/03/07 19:31:17 carl Exp $
#
# This source code copyright (c) gogo6 Inc. 2002-2006.
#
# For license information refer to CLIENT-LICENSE.TXT
#
# Note: IPV6 support and tun Support must be enabled before calling this script.
# 


LANGUAGE=C

if [ -z $TSP_VERBOSE ]; then
   TSP_VERBOSE=0
fi

KillProcess()
----/----

comment #5
> The first non-executable-script is the sample script in /usr/share. The second
> is the script actually used by the program, but it doesn't need execution
> because is called: "/bin/sh /etc/gogoc/template/linux.sh"

---- your linux.sh ----
[root@macmini ~]# head -40 /etc/gogoc/template/linux.sh 
#!/bin/sh
#
# $Id: linux.sh,v 1.3 2010/03/07 19:31:17 carl Exp $
#
# This source code copyright (c) gogo6 Inc. 2002-2006.
#
# For license information refer to CLIENT-LICENSE.TXT
#
# Note: IPV6 support and tun Support must be enabled before calling this script.
# 

# Changed here for Debian systems - used for radvd config file only
TSP_HOME_DIR=/var/run/gogoc

LANGUAGE=C

if [ -z $TSP_VERBOSE ]; then
   TSP_VERBOSE=0
fi

KillProcess()
{
   if [ ! -z $TSP_VERBOSE ]; then
      if [ $TSP_VERBOSE -ge 2 ]; then
         echo killing $*
      fi
   fi
   PID=`ps axww | grep $1 | grep -v grep | awk '{ print $1;}'`
   echo $PID

   # This check doesn't work in Fedora, I don't know why
   # if [ ! -z $PID ]; then
      for i in $PID
         do
            kill $i
      done
   # fi
}

Display()
----/----

Comment 17 Juan Orti Alcaine 2012-02-13 12:45:05 UTC
New update, now the compilation honors RPM_OPT_FLAGS, but I cannot find why it doesn't include the sources in the debug package.
This is the compilation output: http://pastebin.com/3pBb6c6t
And this is the compilation output with find-debuginfo.sh executed with bash -x: http://pastebin.com/qxgLRW6d

I'm stuck at this point, for some reason find-debuginfo.sh doesn't find the sources, if someone with greater knowledge can help it would be great, I'm not a developer.

Spec URL: https://github.com/jorti/gogoc-fedora-package/raw/v1.2-10/SPECS/gogoc.spec
SRPM URL: https://github.com/jorti/gogoc-fedora-package/raw/v1.2-10/SRPMS/gogoc-1.2-10.fc16.src.rpm

Rpmlint output:

gogoc.x86_64: E: non-executable-script /etc/gogoc/template/linux.sh 0644L /bin/sh
gogoc.x86_64: E: non-readable /etc/gogoc/gogoc.conf 0640L
gogoc.x86_64: W: log-files-without-logrotate /var/log/gogoc
gogoc-debuginfo.x86_64: E: debuginfo-without-sources
3 packages and 1 specfiles checked; 3 errors, 1 warnings.

Comment 18 shrek-m 2012-02-13 14:59:25 UTC
i am *no developer* too :(
i do not know if http://pastebin.com is nowadays the recommended path for bugzilla.
---- see ----
Attachments	(Terms of Use)
Add an attachment (proposed patch, testcase, etc.)
----/----

"autodetect" could work or select e.g. "plain text"
------------------------------------------


comment #17
> but I cannot find why it doesn't include the sources in the debug package.


this seems to be  x86_64  specific
no problems with your 1.2-8 SRPM and your gogoc.spec under  fc16.i686
gogoc-debuginfo-1.2-8.fc16.i686.rpm is ok


# rpmlint rpmbuild/SPECS/gogoc.spec rpmbuild/SRPMS/gogoc-1.2-8.fc16.src.rpm
1 packages and 1 specfiles checked; 0 errors, 0 warnings.


# du -b rpmbuild/RPMS/i686/gogoc-*
89145	rpmbuild/RPMS/i686/gogoc-1.2-8.fc16.i686.rpm
217797	rpmbuild/RPMS/i686/gogoc-debuginfo-1.2-8.fc16.i686.rpm


# rpm -ivh rpmbuild/RPMS/i686/gogoc-debuginfo-1.2-8.fc16.i686.rpm 
Vorbereiten...              ########################################### [100%]
   1:gogoc-debuginfo        ########################################### [100%]

# rpm -ql gogoc-debuginfo
/usr/lib/debug
/usr/lib/debug/.build-id
/usr/lib/debug/.build-id/90
/usr/lib/debug/.build-id/90/65f3b9a799f2b2e03e12cff84a18f5d0382b22
/usr/lib/debug/.build-id/90/65f3b9a799f2b2e03e12cff84a18f5d0382b22.debug
/usr/lib/debug/usr
/usr/lib/debug/usr/bin
/usr/lib/debug/usr/bin/gogoc.debug
/usr/src/debug/gogoc-1.2
/usr/src/debug/gogoc-1.2/gogoc-1_2-RELEASE
/usr/src/debug/gogoc-1.2/gogoc-1_2-RELEASE/gogoc-config
/usr/src/debug/gogoc-1.2/gogoc-1_2-RELEASE/gogoc-config/gogocconfig
/usr/src/debug/gogoc-1.2/gogoc-1_2-RELEASE/gogoc-config/gogocconfig/gogoc_c_wrapper.h
......................


the sources are at least ok in  gogoc-debuginfo-1.2-8.fc16.i686.rpm

Comment 19 Richard Shaw 2012-02-13 15:17:14 UTC
I just tried with your latest SRPM and I got a good debuginfo package... I did tweak your spec file a bit but nothing that should have affected that...

The main thing I changed was your %setup macro:
%setup -q -n %{name}-%{distver}

By changing the -c to -n, it doesn't create the %{name}-%{version} directory and just cd's into %{name}-%{distver} instead. That obsoletes all your cd's in %build and %install as well.

http://hobbes1069.fedorapeople.org/gogoc.spec

Hope this helps!
Richard

Comment 20 Juan Orti Alcaine 2012-02-13 18:04:19 UTC
I found the solution! :)

My ~/rpmbuild was a symbolic link to the real rpmbuild directory. I moved the real directory to my home and now the debuginfo is all right.

I have updated the version again to fix an incorrect FSF address in the sources. Hope somebody is willing to sponsor me!

Spec URL: https://github.com/jorti/gogoc-fedora-package/raw/v1.2-11/SPECS/gogoc.spec
SRPM URL: https://github.com/jorti/gogoc-fedora-package/raw/v1.2-11/SRPMS/gogoc-1.2-11.fc16.src.rpm

Rpmlint output:

gogoc.x86_64: E: non-executable-script /etc/gogoc/template/linux.sh 0644L /bin/sh
gogoc.x86_64: E: non-readable /etc/gogoc/gogoc.conf 0640L
gogoc.x86_64: W: log-files-without-logrotate /var/log/gogoc
3 packages and 1 specfiles checked; 2 errors, 1 warnings.

Comment 21 Richard Shaw 2012-02-13 18:34:22 UTC
You need to kill that last patch. Patching licenses files is not allowed. Just report it upstream. It's not a review show stopper.

Comment 22 shrek-m 2012-02-13 19:28:22 UTC
for clarification:

comment #13  from    Juan Orti Alcaine
> I have raised these concerns upstream, I quote their answer:

---- this is the license text in all other files ---- 
/*
-----------------------------------------------------------------------------
 $Id: net_tcp.h,v 1.1 2009/11/20 16:53:16 jasminko Exp $
-----------------------------------------------------------------------------
  Copyright (c) 2007 gogo6 Inc. All rights reserved.

  For license information refer to CLIENT-LICENSE.TXT.
-----------------------------------------------------------------------------
*/


comment #13  from    Juan Orti Alcaine  "their answer:"
> "Hi,
> The idea is that the Linux/BSD version should be under a bsd style license
> while the windows one has a different license. Since they share a lot there
> might be some mixup in the license information. I need to check how it ended up
> in the Linux one. We want it to be compatible with Linux distributions."


not really a bsd or windows style :)    GPL v2
gogoc-1.2-fsf_address.patch 
diff --git gogoc-1_2-RELEASE/gogoc-tsp/include/net_tcp6.h gogoc-1_2-RELEASE/gogoc-tsp/include/net_tcp6.h

---- this seems to be the only wrong license text in net_tcp6.h ----
/*
-----------------------------------------------------------------------------
 $Id: net_tcp6.h,v 1.1 2009/11/20 16:53:16 jasminko Exp $
-----------------------------------------------------------------------------
* This source code copyright (c) gogo6 Inc. 2002-2004,2007.
* 
* This program is free software; you can redistribute it and/or modify it 
* under the terms of the GNU General Public License (GPL) Version 2, 
* June 1991 as published by the Free  Software Foundation.
* 
* This program is distributed in the hope that it will be useful, 
* but WITHOUT ANY WARRANTY;  without even the implied warranty of 
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
* See the GNU General Public License for more details.
* 
* You should have received a copy of the GNU General Public License 
* along with this program; see the file GPL_LICENSE.txt. If not, write 
* to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
* MA 02111-1307 USA
-----------------------------------------------------------------------------
*/
----/----


---- here the referred bsd style license - CLIENT-LICENSE.TXT ----
Copyright (c) 2002-2010 gogo6 
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

    * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
    * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
    * Neither the name of the gogo6 nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
----/----


$ grep -ir gpl gogoc-1_2-RELEASE
gogoc-1_2-RELEASE/gogoc-tsp/include/net_tcp6.h:* under the terms of the GNU General Public License (GPL) Version 2, 
gogoc-1_2-RELEASE/gogoc-tsp/include/net_tcp6.h:* along with this program; see the file GPL_LICENSE.txt. If not, write 
gogoc-1_2-RELEASE/gogoc-tsp/src/net/net_tcp6.c:* under the terms of the GNU General Public License (GPL) Version 2, 
gogoc-1_2-RELEASE/gogoc-tsp/src/net/net_tcp6.c:* along with this program; see the file GPL_LICENSE.txt. If not, write 
gogoc-1_2-RELEASE/gogoc-tsp/template/freebsd.sh:# under the terms of the GNU General Public License (GPL) Version 2,

Comment 23 Juan Orti Alcaine 2012-02-13 20:17:23 UTC
Ok, last patch killed and license information updated.

Spec: https://github.com/jorti/gogoc-fedora-package/raw/v1.2-12/SPECS/gogoc.spec
SRPM: https://github.com/jorti/gogoc-fedora-package/raw/v1.2-12/SRPMS/gogoc-1.2-12.fc16.src.rpm

Rpmlint output:

gogoc.x86_64: E: non-executable-script /etc/gogoc/template/linux.sh 0644L /bin/sh
gogoc.x86_64: E: non-readable /etc/gogoc/gogoc.conf 0640L
gogoc.x86_64: W: log-files-without-logrotate /var/log/gogoc
gogoc-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gogoc-1_2-RELEASE/gogoc-tsp/include/net_tcp6.h
gogoc-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gogoc-1_2-RELEASE/gogoc-tsp/src/net/net_tcp6.c
3 packages and 1 specfiles checked; 4 errors, 1 warnings.

Comment 24 shrek-m 2012-02-13 20:56:48 UTC
seems to be a common problem.

--------
bug #669146
> > $rpmlint RPMS/noarch/gnumed-server-14.8-1.fc14.noarch.rpm gives 
> > gnumed-server.noarch: E: incorrect-fsf-address
> I've asked the devel list on how one should be handling this. We'll probably
> have to patch it to the new address. 

No, we don't patch licences.
https://bugzilla.redhat.com/show_bug.cgi?id=700095
I shall work with upstream to get it corrected. But this is not a blocker I
guess.



bug #700095
remove incorrect fsf address or switch from error to warning

WONTFIX, will only consider changing it to a warning if it starts to produce
false positives.  Just do what the info message says: *you* are not supposed to
fix this unless you're upstream, just notify upstream that the file or
boilerplate they're shipping is outdated, and if they won't do anything about
it, ignore the rpmlint message.
----/----

Comment 25 shrek-m 2012-02-13 22:56:45 UTC
1 = question
2 = gogockeys.pub problem


1) gogoc.conf  with "host_type=router"

a) What happens if radvd is started before gogoc ?
radvd get killed and gogoc is starting radvd with gogoc-rtadvd.config ?
This is what i would expect.

b) What happens if gogoc is started before radvd ?
gogoc-rtadvd get killed and radvd is starting with /etc/radvd.conf ?
This should not happen ?

What does this mean for gogoc.service ?

Should gogoc be started under
[Unit]
After=network.target radvd.service



2) # rpm -q gogoc
gogoc-1.2-12.fc16.i686

gogogc with correct userid and password, the gogockeys.pub is nowhere !
Somehow it happens that no key is created, no dev tun and no ipv6.


---- add key ? no ----
# gogoc 
gogoCLIENT v1.2-RELEASE build Feb 13 2012-22:42:57  
Built on ///Linux macmini.localdomain 3.2.5-3.fc16.i686.PAE #1 SMP Thu Feb 9 02:02:37 UTC 2012 i686 i686 i386 GNU/Linux///
amsterdam.freenet6.net is an unknown host, do you want to add its key?? (Y/N) n
Key verification error.
^C
# service gogoc start
Redirecting to /bin/systemctl  start gogoc.service

# service gogoc status
Redirecting to /bin/systemctl  status gogoc.service
gogoc.service - Freenet6.net tunnel client to IPv6
	  Loaded: loaded (/lib/systemd/system/gogoc.service; disabled)
	  Active: active (running) since Mon, 13 Feb 2012 23:26:20 +0100; 42s ago
	Main PID: 8603 (gogoc)
	  CGroup: name=systemd:/system/gogoc.service
		  └ 8603 /usr/bin/gogoc -f /etc/gogoc/gogoc.conf

# tail  /var/log/messages
[.................] Feb 13 23:28:05 macmini gogoc[8603]: is an unknown host, do you want to add its key?? (Y/N) amsterdam.freenet6.net is an unknown host, do you want to add its key?? (Y/N) amsterdam.freenet6.net is an unknown host, do you want to add its key?? (Y/N) amsterdam.freenet6.net is an unknown host, do you want to add its key?? (Y/N) amsterdam.freenet6.net is an unknown host, do you want to add its key?? (Y/N) amsterdam.freenet6.net is[root@macmini ~]# 


---- add key ? "Y" or "y" no luck ----
#  gogoc 
gogoCLIENT v1.2-RELEASE build Feb 13 2012-22:42:57  
Built on ///Linux macmini.localdomain 3.2.5-3.fc16.i686.PAE #1 SMP Thu Feb 9 02:02:37 UTC 2012 i686 i686 i386 GNU/Linux///
amsterdam.freenet6.net is an unknown host, do you want to add its key?? (Y/N) y

# gogoc 
gogoCLIENT v1.2-RELEASE build Feb 13 2012-22:42:57  
Built on ///Linux macmini.localdomain 3.2.5-3.fc16.i686.PAE #1 SMP Thu Feb 9 02:02:37 UTC 2012 i686 i686 i386 GNU/Linux///
amsterdam.freenet6.net is an unknown host, do you want to add its key?? (Y/N) Y

# tail  /var/log/messages
Feb 13 23:28:05 macmini gogoc[8603]: is an unknown host, do you want to add its key?? (Y/N) amsterdam.freenet6.net is an unknown host, do you want to add its key?? (Y/N) amsterdam.freenet6.net is an unknown host, do you want to add its key?? (Y/N) amsterdam.freenet6.net is an unknown host, do you want to add its key?? (Y/N) amsterdam.freenet6.net is an unknown host, do you want to add its key?? (Y/N) amsterdam.freenet6.net is[root@macmini ~]#

==> without key no ipv6

# LANG=C killall gogoc
gogoc: no process found

# ll /var/lib/gogoc/gogockeys*
-rw-r--r-- 1 root root 0 13. Feb 23:48 /var/lib/gogoc/gogockeys.pub

but it happens all the time ...
# cat /var/lib/gogoc/gogockeys*
# vi /var/lib/gogoc/gogockeys.pub
E297: Write error in swap file
E303: Unable to open swap file for "/var/lib/gogoc/gogockeys.pub", recovery impo
"/var/lib/gogoc/gogockeys.pub" 0L, 0C
Press ENTER or type command to continue
< is empty >
:q
# rm -f /var/lib/gogoc/gogockeys.pub 
# vi /var/lib/gogoc/gogockeys.pub
E297: Write error in swap file
E303: Unable to open swap file for "/var/lib/gogoc/gogockeys.pub", recovery impo
"/var/lib/gogoc/gogockeys.pub" [New File]
Press ENTER or type command to continue
# ........

Comment 26 shrek-m 2012-02-13 23:51:13 UTC
/var/log/messages was filling the hard disk
0% left, in my case it had nearly 10GB in a few minutes

# tail var/log/messages
[... ca. 10 GB ...]
key?? (Y/N) amsterdam.freenet6.net is an unknown host, do you want to add its
key?? (Y/N) amsterdam.freenet6.net is an unknown host, do you want to add its
key?? (Y/N) amsterdam.freenet6.net is an unknown host, do you want to add its
key?? (Y/N) amsterdam.freenet6.net is an unknown host, do you want to add its
#


reboot in single user mode or init 1 if you can :)
# rm -f /var/log/messages
# int 3
# check your config files, ...
# gogoc
accept the key
# systemctl start gogoc.service
and /var/lib/gogoc/gogockeys.pub is ok, dev tun is ok, gogoc rtadvd is ok

Comment 27 Juan Orti Alcaine 2012-02-14 11:06:13 UTC
(In reply to comment #25)
> 1) gogoc.conf  with "host_type=router"
> 
> a) What happens if radvd is started before gogoc ?
> radvd get killed and gogoc is starting radvd with gogoc-rtadvd.config ?
> This is what i would expect.

If radvd is already running, it's not killed because it can be advertising another prefix in another interfaces, instead, a new instance is started with the gogoc specific config.

> b) What happens if gogoc is started before radvd ?
> gogoc-rtadvd get killed and radvd is starting with /etc/radvd.conf ?
> This should not happen ?
> 
> What does this mean for gogoc.service ?
> 
> Should gogoc be started under
> [Unit]
> After=network.target radvd.service

gogoc starts its own radvd, and kills it when closes. Usually, if this is your only IPv6 connection, you should leave radvd unconfigured and the service disabled.

You should notice that gogoc doesn't start the radvd.service, the radvd process is controlled by systemd in the gogoc.service group.


> 2) # rpm -q gogoc
> gogoc-1.2-12.fc16.i686
> 
> gogogc with correct userid and password, the gogockeys.pub is nowhere !
> Somehow it happens that no key is created, no dev tun and no ipv6.

You should add GOGOC_OPTS=-y  to /etc/sysconfig/gogoc to automatically trust the server keys, that way gogockeys.pub gets populated.
I have decided not to distribute the public keys myself because I have no way to validate them. Freenet6 is not distributing them in any way, only when you connect the the servers, so it's up to the user to trust them.

Comment 28 Juan Orti Alcaine 2012-02-14 11:23:49 UTC
Update with a fix for the initial tmpfiles directory creation.

Spec: https://github.com/jorti/gogoc-fedora-package/raw/v1.2-13/SPECS/gogoc.spec
SRPM: https://github.com/jorti/gogoc-fedora-package/raw/v1.2-13/SRPMS/gogoc-1.2-13.fc16.src.rpm

Rpmlint:

gogoc.x86_64: E: non-executable-script /etc/gogoc/template/linux.sh 0644L /bin/sh
gogoc.x86_64: E: non-readable /etc/gogoc/gogoc.conf 0640L
gogoc.x86_64: W: log-files-without-logrotate /var/log/gogoc
gogoc-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gogoc-1_2-RELEASE/gogoc-tsp/include/net_tcp6.h
gogoc-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gogoc-1_2-RELEASE/gogoc-tsp/src/net/net_tcp6.c
3 packages and 1 specfiles checked; 4 errors, 1 warnings.

Comment 29 shrek-m 2012-02-14 14:48:12 UTC
the last 2 remarks / requests from my side:


1) Could you include the info/link, that you only need a free freenet6-account for a *static* ipv6 or subnet? 
http://gogonet.gogo6.com/page/freenet6-account

# rpm -qi gogoc    [...]
:TSP is a control protocol used to establish and maintain static
tunnels. The gogoCLIENT is used on the host computer to connect
to a tunnel broker using the TSP protocol and to get the information
for its tunnel. When it receives the information for the tunnel, the
gogoCLIENT creates the static tunnel on its operating system.

e.g.
# yum info aiccu    [...]
: This client automatically gives one IPv6 connectivity
: without having to manually configure interfaces etc.
: One does need a SixXS account and at least a tunnel. These
: can be freely & gratis requested from the SixXS website.
: For more information about SixXS check http://www.sixxs.net


2) will follow soon, ...
(hint, once again sysvinit / epel)

Comment 30 shrek-m 2012-02-15 10:09:48 UTC
Created attachment 562179 [details]
gogoc-sysvinit.tar.gz - fedora-sysvinit-default, gogoc

this is a minimal  "gogoc sysvinit"  from the fedora sysvinit script example
https://fedoraproject.org/wiki/Packaging:SysVInitScript
see the  url  and  comment #11


you could enhance and complete it an provide an additional  "gogoc-sysvinit"  sub-package for fedora and evtl. a epel package

you can change the runlevel, start and stop sequence
"no default runlevel, Start 10 , Kill 79"

you can add and remove the script  with  chkconfig --add / chkconfig --del


eg. openssh-server
fc16
# rpm -ql openssh-server-sysvinit
/etc/rc.d/init.d/sshd

sl6.2
# rpm -ql openssh-server | grep init.d
/etc/rc.d/init.d/sshd

Comment 31 Juan Orti Alcaine 2012-02-15 18:18:55 UTC
I have branched my git repository to include your sysvinit script: https://github.com/jorti/gogoc-fedora-package/tree/sysvinit
but I don't see the point to maintain this subpackage, it has no sense for Fedora, and you need to do some other changes to the main package to be suitable to EPEL.

I suppose it would need some ifs..elses to check if it's building for EPEL and then disable the systemd dependencies, tmpfiles.d, and add the proper %post and %preun scriptlets.

For now, I would be happy if my package gets accepted in Fedora.
Thank you for your interest.

Comment 32 Juan Orti Alcaine 2012-04-16 08:57:50 UTC
Updated spec file.

SPEC: https://github.com/jorti/gogoc-fedora-package/raw/v1.2-14/SPECS/gogoc.spec
SRPM: https://github.com/jorti/gogoc-fedora-package/raw/v1.2-14/SRPMS/gogoc-1.2-14.fc16.src.rpm

Rpmlint output:

gogoc.x86_64: E: non-executable-script /etc/gogoc/template/linux.sh 0644L /bin/sh
gogoc.x86_64: E: non-readable /etc/gogoc/gogoc.conf 0640L
gogoc.x86_64: W: log-files-without-logrotate /var/log/gogoc
gogoc-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gogoc-1_2-RELEASE/gogoc-tsp/include/net_tcp6.h
gogoc-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gogoc-1_2-RELEASE/gogoc-tsp/src/net/net_tcp6.c
3 packages and 1 specfiles checked; 4 errors, 1 warnings.

Comment 33 Tom "spot" Callaway 2012-04-16 14:50:54 UTC
A few items of note:

* This package is missing "BuildRequires: systemd-units", which it needs to evaluate %{_unitdir}. Please be sure to fix this before commit, because otherwise, this package will fail to build successfully.

* Also, since this code runs as root, you need to enable hardened build support:
https://fedoraproject.org/wiki/Packaging:Guidelines#PIE

I did a quick test of adding "%define _hardened_build 1" to the top of the spec file and it looks to have been applied successfully at build time.

* This code is missing a copy of the GPLv2 license text. Not a packaging blocker, but you should be sure to inform upstream and ask them to add a copy of that license text in the source tree.

* The package contains two copies of an identical file:

/etc/gogoc/template/linux.sh
/usr/share/gogoc/template/linux.sh

The one in /usr/share is set chmod +x, but the one in /etc/gogoc/template/ is not. Do you really need two copies? 

== Review ==

Good:

- rpmlint checks return:
gogoc.x86_64: W: only-non-binary-in-usr-lib
gogoc.x86_64: E: non-executable-script /etc/gogoc/template/linux.sh 0644L /bin/sh
gogoc.x86_64: E: non-readable /etc/gogoc/gogoc.conf 0640L
gogoc.x86_64: W: log-files-without-logrotate /var/log/gogoc
gogoc-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gogoc-1_2-RELEASE/gogoc-tsp/include/net_tcp6.h
gogoc-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gogoc-1_2-RELEASE/gogoc-tsp/src/net/net_tcp6.c
3 packages and 0 specfiles checked; 4 errors, 2 warnings.

- package meets naming guidelines
- package meets packaging guidelines
- license (BSD and GPLv2) OK, text in %doc (for BSD), matches source
- spec file legible, in am. english
- source matches upstream (a0ef45c0bd1fc9964dc8ac059b7d78c12674bf67ef641740554e166fa99a2f49)
- package compiles on f17 (x86_64)
X missing BR: systemd-units
- no unnecessary BR
- no locales
- not relocatable
- owns all directories that it creates
- no duplicate files
- permissions ok
- macro use consistent
- code, not content
- no need for -docs
- nothing in %doc affects runtime
- no need for .desktop file 

***** 

Show me a fixed SRPM with those issues (aside from the GPLv2 license text) resolved and I will finish off this review and sponsor you.

Comment 34 Juan Orti Alcaine 2012-04-16 20:07:12 UTC
(In reply to comment #33)
I have fixed the problems you found, here is the new version:

Spec file: https://raw.github.com/jorti/gogoc-fedora-package/v1.2-15/SPECS/gogoc.spec
SRPM file: https://github.com/jorti/gogoc-fedora-package/raw/v1.2-15/SRPMS/gogoc-1.2-15.fc16.src.rpm

Rpmlint output explained:

gogoc.x86_64: E: non-readable /etc/gogoc/gogoc.conf 0640L
- This file contains passwords, so it must be non world readable.

gogoc.x86_64: E: non-executable-script /etc/gogoc/template/linux.sh 0644L /bin/sh
- Not needed, it's called by the shell: /bin/sh /etc/gogoc/template/linux.sh

gogoc.x86_64: W: log-files-without-logrotate /var/log/gogoc
- The daemon does its own configurable log rotation

gogoc-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gogoc-1_2-RELEASE/gogoc-tsp/include/net_tcp6.h
gogoc-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gogoc-1_2-RELEASE/gogoc-tsp/src/net/net_tcp6.c
- Upstream is notified of this.

3 packages and 1 specfiles checked; 4 errors, 1 warnings.


> 
> * This code is missing a copy of the GPLv2 license text. Not a packaging
> blocker, but you should be sure to inform upstream and ask them to add a copy
> of that license text in the source tree.

Upstream don't have a public bug tracker, I have submitted to them all patches by email, I'll notify them about this missing license.

> 
> * The package contains two copies of an identical file:
> 
> /etc/gogoc/template/linux.sh
> /usr/share/gogoc/template/linux.sh

I have removed all the /usr/share/gogoc directory, because only the one in etc is used.

Comment 35 Tom "spot" Callaway 2012-04-16 20:15:14 UTC
Looks good. APPROVED.

Please let me know what your Fedora Account username is so I can sponsor you.

Then you can continue along these steps:

https://fedoraproject.org/wiki/PackageMaintainers/Join

Comment 36 Juan Orti Alcaine 2012-04-16 20:34:31 UTC
Thank you! :)

Mi username is: jorti

Comment 37 Juan Orti Alcaine 2012-04-17 09:16:47 UTC
New Package SCM Request
=======================
Package Name: gogoc
Short Description: IPv6 TSP client for gogo6
Owners: jorti
Branches: f15 f16 f17
InitialCC:

Comment 38 Gwyn Ciesla 2012-04-17 13:28:48 UTC
Git done (by process-git-requests).

Comment 39 Fedora Update System 2012-04-17 16:40:31 UTC
gogoc-1.2-15.fc17 has been submitted as an update for Fedora 17.
https://admin.fedoraproject.org/updates/gogoc-1.2-15.fc17

Comment 40 Fedora Update System 2012-04-18 16:15:55 UTC
gogoc-1.2-15.fc16 has been submitted as an update for Fedora 16.
https://admin.fedoraproject.org/updates/gogoc-1.2-15.fc16

Comment 41 Fedora Update System 2012-04-18 16:17:29 UTC
gogoc-1.2-15.fc15 has been submitted as an update for Fedora 15.
https://admin.fedoraproject.org/updates/gogoc-1.2-15.fc15

Comment 42 Fedora Update System 2012-04-18 22:13:48 UTC
gogoc-1.2-15.fc17 has been pushed to the Fedora 17 testing repository.

Comment 43 Fedora Update System 2012-04-20 03:07:34 UTC
gogoc-1.2-15.fc17 has been pushed to the Fedora 17 stable repository.

Comment 44 Fedora Update System 2012-04-22 03:29:49 UTC
gogoc-1.2-15.fc16 has been pushed to the Fedora 16 stable repository.

Comment 45 Fedora Update System 2012-04-22 03:30:31 UTC
gogoc-1.2-15.fc15 has been pushed to the Fedora 15 stable repository.

Comment 46 Juan Orti Alcaine 2014-02-22 14:35:14 UTC
Package Change Request
======================
Package Name: gogoc
New Branches: el6 epel7
Owners: jorti

Comment 47 Gwyn Ciesla 2014-02-24 12:58:14 UTC
Git done (by process-git-requests).


Note You need to log in before you can comment on or make changes to this bug.