Why does namcap say I don't need stuff I definitely do need?

I have developed some bash scripts using ffmpeg, imagemagick's convert, yad, and lots of other tools that I had to explicitly install, but namcap claims I don't need to list any of those dependencies. It's called silentcast and makes it easy to create a variety of animated gif recordings of the screen. I haven't put it in the AUR yet because I'm still working on the README.md, but the package is basically ready for use and available on github: https://github.com/colinkeenan/silentcast/#silentcast. I created the animated gifs in that README.md with silentcast itself.
Anyway, I was listing all the dependencies in a table in the README.md and realized I had missed a lot of stuff so added more. Then, still worried I had missed something, I read the wiki to find out how to test for missing dependencies and discovered namcap. First, I tried running namcap on PKGBUILD, but that didn't do anything. Next, I did a makepkg -s and ran namcap on the package just created. Here's what namcap has to say:
namcap -i silentcast-1.0-1-any.pkg.tar.xz
silentcast I: Script link detected (bash) in file ['usr/bin/genffcom', 'usr/bin/silentcast', 'usr/bin/temptoanim']
silentcast I: Script link detected (python) in file ['usr/share/silentcast/transparent_window.py']
silentcast W: Dependency included and not needed ('ffmpeg')
silentcast W: Dependency included and not needed ('imagemagick')
silentcast W: Dependency included and not needed ('yad')
silentcast W: Dependency included and not needed ('xorg-xrandr')
silentcast W: Dependency included and not needed ('wmctrl')
silentcast W: Dependency included and not needed ('xdotool')
silentcast W: Dependency included and not needed ('xorg-xwininfo')
silentcast W: Dependency included and not needed ('python-gobject')
silentcast W: Dependency included and not needed ('python-cairo')
silentcast W: Dependency included and not needed ('xdg-utils')
silentcast I: Dependency covered by dependencies from link dependence (bzip2)
silentcast I: Dependency covered by dependencies from link dependence (readline)
silentcast I: Dependency covered by dependencies from link dependence (linux-api-headers)
silentcast I: Dependency covered by dependencies from link dependence (gdbm)
silentcast I: Dependency covered by dependencies from link dependence (perl)
silentcast I: Dependency covered by dependencies from link dependence (glibc)
silentcast I: Dependency covered by dependencies from link dependence (iana-etc)
silentcast I: Dependency covered by dependencies from link dependence (openssl)
silentcast I: Dependency covered by dependencies from link dependence (ncurses)
silentcast I: Dependency covered by dependencies from link dependence (gcc-libs)
silentcast I: Dependency covered by dependencies from link dependence (db)
silentcast I: Dependency covered by dependencies from link dependence (expat)
silentcast I: Dependency covered by dependencies from link dependence (tzdata)
silentcast I: Dependency covered by dependencies from link dependence (filesystem)
silentcast I: Dependency covered by dependencies from link dependence (libffi)
silentcast I: Dependency covered by dependencies from link dependence (sh)
silentcast I: Dependency covered by dependencies from link dependence (zlib)
silentcast I: Depends as namcap sees them: depends=(bash python)
So, namcap thinks I only need bash and python! This is crazy. All the stuff I listed as dependencies are explicitly called in the bash scripts or imported in the python script because they were needed in that script. Many of these I had to install myself and were certainly not included with bash and python! Why is namcap saying I don't need this stuff?
It occurs to me that maybe I haven't properly created the PKGBUILD so that namcap thinks the dependencies are covered by installing the various included scripts. Do I have to somehow make it clear all those scripts ARE the package? Here is my PKGBUILD.
# Maintainer: Colin Keenan <colinnkeenan at gmail dot com>
pkgname=silentcast
pkgver=1.0
pkgrel=1
pkgdesc="Silent Screencast: video record your screen and make it into an animated gif"
arch=('any')
url="https://github.com/colinkeenan/silentcast"
license=('GPL')
depends=('ffmpeg' 'imagemagick' 'yad' 'xorg-xrandr' 'wmctrl' 'xdotool' 'xorg-xwininfo' 'python-gobject' 'python-cairo' 'xdg-utils')
install=${pkgname}.install
source=('silentcast' 'genffcom' 'temptoanim' 'transparent_window.py' 'silentcast.desktop' 'README.md')
md5sums=('de05e0140e4640bf0b52077f4ade5a26'
'3b7311751662d8bd3034e4720239b070'
'6ce4638b3358ca388838cf650083a528'
'6bf9e695750a3f65e4421544c53bdb96'
'f1641d3959f479a97b6bcd26f103f900'
'539141058e7f8bcb99218e632a817e1e')
package() {
install -D -m755 silentcast "$pkgdir/usr/bin/silentcast"
install -D -m755 genffcom "$pkgdir/usr/bin/genffcom"
install -D -m755 temptoanim "$pkgdir/usr/bin/temptoanim"
install -D -m755 transparent_window.py "$pkgdir/usr/share/silentcast/transparent_window.py"
install -D -m755 silentcast.desktop "$pkgdir/usr/share/applications/silentcast.desktop"
install -D -m755 README.md "$pkgdir/usr/share/doc/silentcast/README.md"
Last edited by colinkeenan (2014-09-22 05:56:37)

colinkeenan wrote:The specific answer I was looking for and hoping namcap would give me had to do with xdg-open from the xdg-utils package. I use it to open the desktop's file-browser. On the Packages page for xdg-utils, optional dependencies are listed according to what desktop it's being run on. So, for example, I use Xfce and it lists 'exo' and 'xorg-xprop' as optional dependencies. I have no idea if those optional dependencies are actually required in order for my script to open the file-browser in Xfce.
How can you not know?  Do you use exo or xprop in the script or not?  If you only use xdg-open, then only specify that as a dependency.  Users can then figure out which specific tools they wish to use to satisfy that dependency.  I use my own replacement for xdg-open, and if I wanted I could package it listing "xdg-open" in the provides array so your tool would then call my xdg-open replacement tool.  It's not up to you to worry about how other users chose to implement xdg-open unless your scripts depend on a specific implementation.
Much the same could be bash.  If your script uses a bash hashbang, then bash is a dependency.  If you use a "sh" hashbang than any shell will do - but then you must use only posix shell commands and conditionals - there are a lot of "bashisms" that will not work in other shells (e.g. the [[ bash builtin for conditionals).  But even if bash is a dependency it does not need to  be listed: you should not list dependencies that are in base or base-devel.
On a related question that you touched on in this thread, you do not need to list recursive dependencies.  If you list python modules that have python as a hard dependency, then you do not need to list python.  But just like the 'bashisms' example above, if you use a specific version of python (2.7 or 3) these are generally not compatible.  The modules might not care which python is installed to meet it's needs, but your script may require a specific implementation of python.  In such a case, you'd have to specify which python you used in addition to the python module(s).
EDIT:
Bear in mind I just whipped this up on the spot, and I have no idea how reliable it is - but in principle the following line should find dependencies for any script or anything else for that matter - provided that simply running the script/command will use everything that is required:
pacman -Qqo $(strace ./script 2>&1 | awk '/^(open|stat|access)/ {sub(/[a-z]*\("/,"",$1); sub(/",/,"",$1); print $1}') 2>/dev/null | sort -u
This is assuming the script is in the current working directory and named "script".  I'll put together a more flexible and useful version momentarily.

Similar Messages

  • InDesign CC -- why does it say I don't have the latest version?

    I currently have InDesign CC 9.2, MAC. I have gone to the help menu and "updated" the program. I had someone send me a file that was designed in a trial version of the program; she needed some help with the file. When I tried to open the file I got the message "unable to open this file, it was created in a newer version of the program". If I have CC and update the program how can there be a more current version of the program? How do I fix this problem?
    Thanks

    She did it on the latest Indesign CC 2014. You can download it from the Creative Cloud app.

  • HT1296 why does it say Can't sync you don't have enough access privilages when I try to sync my ipad

    Why does it say...Can't sync you don't have enough access privilages, when I try to sunc my ipad, i've never had this issus before?

    Sometimes it helps to delete the iPod Photo Cache folder when you get this message when trying to sync your devices with iTunes. This will explain where the iPod Photo Cache folder can be found on your computer and how you can delete it.
    iTunes: Understanding the iPod Photo Cache Folder.
    http://support.apple.com/kb/TS1314

  • HT3728 Base station error, air port utility was unable to find my airport device. Why does it say this when it recognizes my airport on the computer? Yellow light has been on

    Base station error, air port utility was unable to find my airport device. Why does it say this when it recognizes my airport on the computer? Yellow light has been on

    On the older version of the AE you can still use older airport utility.
    But once you load the new one you cannot easily go back.. you can load an older 5.6 version though.. instructions below.
    For 6.3 you need to run ipv6 local link.
    see http://support.apple.com/kb/TS4597
    How to load 5.6 into ML.
    1. Download 5.6 for Lion.
    http://support.apple.com/kb/DL1482
    Click to open the dmg but do not attempt to install the pkg.. it won't work anyway.
    Leave the package open on the desktop so you can see the file. AirportUtility56.pkg
    2. Download and install unpkg.
    http://www.timdoug.com/unpkg/
    Run unpkg on the desktop.. If your Mac refuses to run the software, because it wasn’t downloaded from the Apple store, go to security in preferences and allow other software to work.. this is limitation of trade methinks. You can set back later if you like.
    Now drag the AirPortUtility56.pkg file over to unpkg.. and it will create a new directory of the same name on the desktop.. in finder, open the new directory, drill down.. applications, utilities .. there lo and behold is Airport utility 5.6 .. drag it to your main utilities directory or just run it from current location.
    You cannot uninstall version 6 (now 6.3 if you updated) so don't try.. and you cannot or should not run them both at the same time.. although I have had no problems when doing so.

  • HT5312 Why does it say I have to wait eight hours until I can buy something

    Why does it say I have to wait eight hours before I can buy something???

    Have you typed in the wrong answers to your questions ? That can result in a 8 hour block.
    If you have a rescue email address on your account as described on the page that you posted from then you can use the steps half-way down that page to reset them.
    If don't have one (you won't be able to add one, or change it, until you can answer 2 of your questions) then you will need to contact iTunes Support / Apple to get the questions reset : http://support.apple.com/kb/HT5699

  • Why does itunes say i have the latest version 4.2.1 (8c148) for my 3rd gen iPod touch when it should be iOS 5?

    why does itunes say i have the latest version 4.2.1 (8c148) for my 3rd gen iPod touch when it should be iOS 5?

    Be sure it is really a 3rd gen. Some people with 2nd gens were told they were 3rd gens.  Identifying iPod models or Look up specs by Serial Number. If it is a 2nd gen, then you can't upgrade.
    IF IT REALLY IS A THIRD GEN iPod Touch, then you first need to upgrade to iTunes 10.5 in order to download iOS 5 because older versions of iTunes don't support and can't sync with iOS 5.

  • ITunes says I have authorized five computers so I can no longer play music I have purchased. I have not replaced my computer once. Why does iTunes say this?

    iTunes says I have authorized five computers so I can no longer play music I have purchased. I have not replaced my computer once. Why does iTunes say this?

    Hey Christownsend,
    Thanks for the question. To troubleshoot this issue, you may want to try deauthorizing all computers:
    iTunes Store: About authorization and deauthorization
    http://support.apple.com/kb/HT1420
    To deauthorize all computers associated with your Apple ID
    If you need to authorize your new computer and are unable due to already having five authorized computers, you can deauthorize all computers by doing the following:
    1. Click iTunes Store on the left side of iTunes.
    2. If you're not signed in to the store, click the Account button, then enter your account name and password.
    3. Click the Account button again (your Apple ID appears on the button), enter your password, and then click View Account.
    4. In the Account Information window, click Deauthorize All.
    Note: You may only use this feature once per year. The Deauthorize All button will not appear if you have fewer than two authorized computers. If you need assistance on using this feature, please contact iTunes Store support via email (http://www.apple.com/support/itunes/store/).
    Thanks,
    Matt M.

  • Why does it say that the updated version of Firefox (which I am trying to download) is not compatible with my operating system when I have Mac OS X 10.5.8?

    Why does it say that the updated version of Firefox (which I am trying to download) is not compatible with my operating system when I have Mac OS X 10.5.8? I had an older version of Firefox and it said I needed to update it but that was the message that appeared.

    Sorry, it's because Firefox 4+ are only compiled for the Intel processors.
    There is a separate project for PPC Macs called Ten Four Fox. You might give it a spin when you're tired of 3.6.
    http://www.floodgap.com/software/tenfourfox/

  • Why does itunes say the entry point is not found

    why does itunes say it didn't install correctly and to reinstall?

    Greg, did the "Patchburn" really work for you?
    I had the same problem today. I have a smart playlist made up of: Kind>is>Protected AAC audio file. This smart play list allows me to keep track of music I've downloaded from the iTMS after inadvertently deleting the Purchased Music default playlist. Yes, I know a new “Purchased Music” playlist is created when you buy music again, but it doesn’t contain any of the songs you’ve already downloaded.
    When I went to burn this playlist (several hundred songs) to multiple audio CD format - I go the same result you got.
    "After asking to burn a play list it asks to insert CD, checks the media, checks the play list and then stops with the apple icon reappearing and NO error message."
    Apple tech support couldn’t help me - I found that out the hard way - after 1.5 hours on the phone. No, I haven't exceeded the 7 time burn limit either.
    I tried selecting all the songs in the smart playlist and creating a new [regular] playlist and tried to burn from that, but got the same result.
    Finally, I tried typing "Protected AAC audio file" from my main library in the search window, selected all the songs that resulted, created a new [regular] playlist from that selection and the burn was successful.
    It was a real pain and took almost 3 hours to figure out, but it worked. I'm going to try the "Patchburn" download talked about earlier, but don't know if that's the real problem.
    Yes, I have upgraded my SuperDrive, but iTunes recognizes it - Preferences>Advanced>Burning - if your drive shows up here then that's not the problem. Besides, I had the same problem when trying to burn to the original SuperDrive too.
    I think the problem may be deeper inside iTunes itself. Duh! Maybe something with Apple tightening their DRM scheme which may make us unwitting beta testers to see if they tightened the noose too tight or not. Just a guess.
    Any thoughts, anyone?
    Power Mac G4 MDD   Mac OS X (10.4.3)  

  • Why does it say when i try to buy a app it says wrong payment method

    why does it say when i try to buy a app it says wrong payment method

    rick284 wrote:
    why does it say when i try to buy a app it says wrong payment method
    You need to Contact iTunes Customer Service and request assistance for an answer to your question.
    Use this Link  >  Apple  Support  iTunes Store  Contact

  • Why does it say itunes can not contact the ipod update server because you are not connected to the internet when i am connected to the internet?

    why does it say itunes can not contact the ipod update server because you are not connected to the internet when i am connected to the internet? i need to update my ipod i even changed the LAN settings and it stilll doesnt work

    Have you seen this article?
    iTunes for Windows: iTunes cannot contact the iPhone, iPad, or iPod software update server
    B-rock

  • Why does iTunes say "temporarily unavailable" when I try download my "available downloads"?

    Why does iTunes say "temporarily unavailable" when I try download my "available downloads"? HELP!!

    You don't have the typical symptoms that I associate the following issue with (normally the error kicks in just when folks visit the Store), but just in case try gn_id's suggestion from the following post:
    Re: iTunes 11 crashes when opening the store - no error message

  • HT203088 I have the CANON REBEL T5 1200D, and when i connect it to my mac which is 10.10 the new OS X YOSEMITE it says that it "Cannot be used with this version of the operating system" why does it say that?

    I have the CANON REBEL T5 1200D, and when i connect it to my mac which is 10.10 the new OS X YOSEMITE it says that it "Cannot be used with this version of the operating system" why does it say that if my camera is listed under the supported digital cameras for OS X YOSEMITE?

    Put simply, the minimum system requirements for iTunes have changed. You need a Mac running at least OS X 10.6.8.
    It's best you look online to see if your model of Mac can be upgraded to at least 10.6.8 "Snow Leopard". It should still be possible to order a copy of Snow Leopard if so.

  • Why does it say Apple ID disabled when I try to update an app

    Why does it say my Apple ID is disabled when I try to update an app.? My ID works for everything else. Also, I thought with the new iOS update that apps are supposed to update themselves but mine haven't.

    On your Mac/PC open iTunes (make sure it is updated). On the tabs on the left click on "iTunes Store". This will change the window on the right to the iTunes store. The top right corner should have your Apple ID or Sign In written. If there is an Apple ID written click on it and Sign Out. The corner should then change to "Sign In".
    Now click on Sign In and sign in with the wrong/incorrect Apple ID that you no longer wish to use or update from.
    Once logged in, click on the down arrow that shows when you move the pointer on the top right corner where it should now show the apple id, and select Account.
    The page that opens up should have a section called "iTunes in the Cloud" with a tab on the side saying "Manage Devices".
    Click on Manage Devices. Its should list your iPhone or iPad that you no longer wish to use with this Apple ID. And click Remove.
    Once its confirmed click "Done" and from the top right corner select Sign Out.

  • Why does it say No bootable device Insert bootable device?

    Why does it say No bootable device Insert bootable device?

    Can i suggest you spend more time explaining the situation, what you are doing, what has been done recently, etc?   One sketchy line is not much help.
    That said, i will guess that yu are trying to turn on your mac, and it gve you that message, immediately.
    It means that soemthing has caused it to not recognize your hard disk and the OSX software on it.  It could be:
    1. a dmaaged disk
    2. corrupted software
    3. a firmware bug
    4. a hardware failure
    Most likely the software has been corrupted at least slightly.
    The best first step is to boot from your original CD and run disk diagnostics/ repairs on the hard drive.
    I hope that fixes it.
    Then go buy an external bootabl hard drive and begin making complete, bootable backups on  weekly basis.
    Grant

Maybe you are looking for

  • HP 8600 not found by iPad or iPhones

    We had a new router installed by our internet company now my ipad, my iphone 5 and iphone 4 and apple tv can not find the printer. the printer is not an air print printer. We keep getting the message no air printer found. All of these devices were ab

  • Z97-G43 Gaming black screen

    Hello, I just got my new motherboard today, along with all my other hardware. epic! .. at first - all was good until i pluged my pc in, started up, and saw that i had no internet.. A google search on my laptop revealed that it was a Bios update that

  • POS Integration-POSDM, ERP, PI - using enterprise services-Connectivity Kit

    Hello, below you find a link to the official Connectivity Kit for Integration Scenario: POS Integration. The integration scenario POS Integration is based on SAP ERP and SAP NetWeaver BI /SAP POS Data Management using enterprise services. You will fi

  • Lock selective fields in Table

    I have a table with 8 columns and 20 rows and I want to be able to lock out specific fields with content "na" to prevent user from editing those fields. Is it doable in LV8.6?

  • Why does the location always read "go to a website" instead of the actual address?

    If I were to go to www.amazon.com, why doesn't it show as this in the navigation bar? It always reads as "go to a website." I would like it show the exact http address like it always did.