#19: package a 8051 ide (spec included) -----------------------------+---------------------------------------------- Reporter: chitlesh | Owner: chitlesh Type: defect | Status: new Priority: major | Milestone: Fedora 12 Component: embedded design | Version: devel Keywords: | -----------------------------+---------------------------------------------- Anyone willing to maintain the mcu8051ide ? Spec file provided
#19: package a 8051 ide (spec included) ------------------------------+--------------------------------------------- Reporter: chitlesh | Owner: chitlesh Type: defect | Status: new Priority: major | Milestone: Fedora 12 Component: embedded design | Version: devel Resolution: | Keywords: ------------------------------+--------------------------------------------- Comment (by shakthimaan):
Replying to [ticket:19 chitlesh]: | Anyone willing to maintain the mcu8051ide ? Spec file provided --
Yes! Attached now find mcu8051ide.2.spec and mcu8051-1.1-desktop-exec- path-fix.patch to build mcu8051ide package on Fedora 10. Please let me know if you have any issues.
#19: package a 8051 ide (spec included) ------------------------------+--------------------------------------------- Reporter: chitlesh | Owner: chitlesh Type: task | Status: new Priority: major | Milestone: Fedora 12 Component: embedded design | Version: devel Resolution: | Keywords: ------------------------------+--------------------------------------------- Changes (by chitlesh):
* type: defect => task
Comment:
Thanks,
Well it is a fair simple package to start packaging. If you have not yet sponsored for Fedora packaging, let me know I will sponsor you.
Below are some package review comments. I recommend you to update the spec as appropriate and file an official package review requests as suggested on : https://fedoraproject.org/wiki/PackageMaintainers
Btw, you can use your 150Mb space on FAS_USERNAME.fedorapeople.org, to upload your spec and SRPMS.
#01: ChangeLog Can you add this:
* Wed May 20 2009 Chitlesh Goorah <chitlesh [AT] fedoraproject DOT org> - 1.1-1 - Initial Package
below your changelog entry.
Tip: your spec file will be archived on different mirrors and some of them don't have spam protection, I recommend you to use the "email format" I used above to cheat spammers.
Your release tag should be _currently_ 2. Everytime you do some modifications on the spec just increment the release tag and avoid adding decimal value.
#02: Source URL
In accordance to the https://fedoraproject.org/wiki/Packaging:Guidelines, the source URL should be: http://downloads.sourceforge.net/%%7Bname%7D/%%7Bname%7D-%%7Bversion%7D.tar....
#03: Avoid unneccessary requires:
Yum and RPM are both intelligent to deduce which RPMS to require. So you can remove:
Requires: tcl >= 8.4, tk >= 8.4, tkimg >= 1.3, itcl >= 3.1, tdom >= 0.8, tcllib >= 1.6, bwidget >= 1.8, rxvt-unicode >= 8.3
Tip: to know whether the proper dependencies will be pulled by yum, do:
$ rpm -qpR NVR.arch.disttag.rpm
NVR = NAME-VERSION-RELEASE
Tip: Requires: electronics-menu should be explicit added due to the menu- structure
# 04: Avoid versions on BuildRequires/Requires Unless it is really needed, you should avoid adding versions on BuildRequires and Requires. This is one of the reasons why users have problem while upgrading from F-N to F-(N+1).
# 05: Avoid redundant BuildRequires: Again, yum is intelligent :) for example, tk-devel already requires tcl-devel, so you can remove tcl- devel from BR.
To know if tcl-devel(or another package) is required by tk-devel
$ rpm-qR tk-devel ... tcl-devel <----------------- ...
Use the same method to remove buildrequires duplicates. In some cases it helps to reduce time during yum install or yum update.
# 06: What I called: make-it-sexy :)
- either use $RPM_BUILD_ROOT or %{buildroot}
#07: backup
add a "-b .desktop" after %patch0 -p1
The package looks fine and there are not real blockers for its approval. It's only fedora packaging guidelines to get familiar with, if not good job Shakthi.
Once you have updated the spec file, file an official package review request and give me the url. I will review it for you. I think we can get it into fedora mirrors before this weekend. Unfortunately, it is a bit too late to add it into the livedvd. :(
After the package has been approved, remind me to show you how to add any package on the FEL livedvd.
#19: package a 8051 ide (spec included) ------------------------------+--------------------------------------------- Reporter: chitlesh | Owner: shakthimaan Type: task | Status: new Priority: major | Milestone: Fedora 12 Component: embedded design | Version: devel Resolution: | Keywords: ------------------------------+--------------------------------------------- Changes (by chitlesh):
* owner: chitlesh => shakthimaan
Comment:
Ahh trac does not treat some end-of-lines properly.
#19: package a 8051 ide (spec included) ------------------------------+--------------------------------------------- Reporter: chitlesh | Owner: shakthimaan Type: task | Status: assigned Priority: major | Milestone: Fedora 12 Component: embedded design | Version: devel Resolution: | Keywords: ------------------------------+--------------------------------------------- Changes (by shakthimaan):
* status: new => assigned
Comment:
Thanks for the valuable feedback! Just one clarification:
BuildRequires lists the entries for building the package while Requires lists the run-time dependencies required to use the package. CMIIW.
From the upstream application running:
mcu8051ide --check-libraries
lists all the run-time packages required - tcl, tk, tkimg, itcl, tdom, tcllib, bwidget, and rxvt-unicode that are required to run mcu8051ide. So, if we don't specify the Requires, how does yum or rpm know? I commented the Requires, and tried rpm -qpR on the generated .rpm file, and it doesn't mention the required packages to be pulled. So, I guess we need Requires.
I have removed versions on the dependencies. I shall make all the other changes.
#19: package a 8051 ide (spec included) ------------------------------+--------------------------------------------- Reporter: chitlesh | Owner: shakthimaan Type: task | Status: assigned Priority: major | Milestone: Fedora 12 Component: embedded design | Version: devel Resolution: | Keywords: ------------------------------+--------------------------------------------- Comment (by chitlesh):
You are right. In any other package that requires libraries yum will deduce the dependencies by itself. But in this case, mcu8051ide is of tcl- scripts. This is why rpm -qp XXX.rpm, can't pull the proper dependencies. I think I will file a bug against yum/rpm because for Perl scripts yum does pull the proper dependencies.
Actual Requires :
Requires: tcl >= 8.4, tk >= 8.4, tkimg >= 1.3, itcl >= 3.1, tdom >= 0.8, tcllib >= 1.6, bwidget >= 1.8, rxvt-unicode >= 8.3
After rpm -qR on each, it simplifies to:
Requires: tkimg, itcl, tdom, tcllib, bwidget, rxvt-unicode
#19: package a 8051 ide (spec included) ------------------------------+--------------------------------------------- Reporter: chitlesh | Owner: shakthimaan Type: task | Status: assigned Priority: major | Milestone: Fedora 12 Component: embedded design | Version: devel Resolution: | Keywords: ------------------------------+--------------------------------------------- Comment (by shakthimaan):
I was able to deduce the Requires. Thanks!
First package for sponsorship: https://bugzilla.redhat.com/show_bug.cgi?id=502795
#19: package a 8051 ide (spec included) ------------------------------+--------------------------------------------- Reporter: chitlesh | Owner: shakthimaan Type: task | Status: assigned Priority: major | Milestone: Fedora 12 Component: embedded design | Version: devel Resolution: | Keywords: ------------------------------+--------------------------------------------- Comment (by chitlesh):
I will now use this ticket as example for new packagers, so below you will find some additional details once the package has been approuved.
Every _new_ packager will need to be sponsored for the first time.
In order for me to sponsor you, please apply for the "packager" group on https://admin.fedoraproject.org/accounts/group/view/packager
Once you are sponsored, continue reading the guidelines as from "Add_Package_to_CVS_and_Set_Owner" section
https://fedoraproject.org/wiki/PackageMaintainers/Join#Add_Package_to_CVS_an...
For Fedora Electronic Lab we want to support entreprise OS such as CentOS as well under the EPEL-5 repository
https://fedoraproject.org/wiki/EPEL
For this please add "chitlesh" into the owners and "EL-5" into branches, example:
New Package CVS Request ======================= Package Name: pcb Short Description: An interactive printed circuit board editor Owners: YOUR.FAS.USERNAME chitlesh Branches: F-10 F11 EL-5
#19: package a 8051 ide (spec included) ------------------------------+--------------------------------------------- Reporter: chitlesh | Owner: shakthimaan Type: task | Status: assigned Priority: major | Milestone: Fedora 12 Component: embedded design | Version: devel Resolution: | Keywords: ------------------------------+--------------------------------------------- Comment (by chitlesh):
New Package CVS Request[[BR]] =======================[[BR]] Package Name: pcb[[BR]] Short Description: An interactive printed circuit board editor[[BR]] Owners: YOUR.FAS.USERNAME chitlesh[[BR]] Branches: F-10 F11 EL-5[[BR]]
#19: package a 8051 ide (spec included) ------------------------------+--------------------------------------------- Reporter: chitlesh | Owner: shakthimaan Type: task | Status: assigned Priority: major | Milestone: Fedora 12 Component: embedded design | Version: devel Resolution: | Keywords: ------------------------------+--------------------------------------------- Comment (by chitlesh):
You will also automatically get a URL pointing at all the packages you maintain at
https://admin.fedoraproject.org/pkgdb/users/packages/YOUR.FAS.USERNAME
example for me:[[BR]] https://admin.fedoraproject.org/pkgdb/users/packages/chitlesh
On this page you can also roam into the cvs branch of your package or any other packager. This is very handy if you want to send patches to upstream. You just point to your url.
#19: package a 8051 ide (spec included) ------------------------------+--------------------------------------------- Reporter: chitlesh | Owner: shakthimaan Type: task | Status: closed Priority: major | Milestone: Fedora 12 Component: embedded design | Version: devel Resolution: fixed | Keywords: ------------------------------+--------------------------------------------- Changes (by chitlesh):
* status: assigned => closed * resolution: => fixed
Comment:
The inclusion of your packaging into[[BR]] 1) the livedvd[[BR]] 2) yum groupinstall 'Electronic Lab'[[BR]] is done by the comps.
Read this for more details http://fedoraproject.org/wiki/PackageMaintainers/CompsXml
For FEL, there is special group, as you can see on the comps file
<id>electronic-lab</id>[[BR]] <_name>Electronic Lab</_name>[[BR]] <_description>Design and Simulation tools for hardware engineers</_description>[[BR]]
Only when your package has been approved and already pushed into the fedora mirrors that you can add an entry of your package in the comps file:
example for pcb: <packagereq type="default">pcb</packagereq>
Before committing ensure you have checked the comps file for syntax errors as mentioned on
http://fedoraproject.org/wiki/PackageMaintainers/CompsXml
electronic-lab@lists.fedoraproject.org