Should/can the install script included in source=() list?

Hi,
It is a good thing that the sources needed to build a package are md5summed for integrity, but in most packages the install script is not. I was thinking why this might be - the PKGBUILD can be expected to modify the script?
  So to try, in one of my packages I added the install script to the source=() list. The package builds of course just fine. Then, however, if I want to upload it to AUR, I try to make a source-only package with "makepkg --source", which brakes with something like this:
ln: creating symbolic link `/tmp/foo/srclinks.YjYgQ8XlE/foo/foo.install': File exists
This is because makepkg tries to create a 2 symbolic links with the same filename: one link for the "foo.install" in the source=() list and also for the install=() list....
Is this deliberate, or a bug? Looks more like a bug to me, but thought I better ask first....
Cheers,
Greg

shining wrote:
imrehg wrote:
It might be completely internal to the pacman but defines actions taken on the system - thus whatever is in .install has effects just like the rest of the files, maybe even more: the other files are just copied, the .install is executed.
And while it might never get installed on the system, it's internals are - how else one could define a "post_uninstall()" if it wasn't stored? Being pacman developer you know much more about this than I do, can you give a bit of info on that?
Right it is installed to pacman database, but again, it is pacman doing all that.
Fair enough.... The detail, however, that is not installed does not preempt checksumming. Eg. patches are also: 1) used for the package, 2) not installed, and 3) still in the checksum....
shining wrote:
All I'm trying to get to, is there any serious reason (technical, not philosophical) NOT to checksum the install script as well?  Because I'm yet to see any valid arguments against it, and there are loads for it....
Taking your example from kernel26 :
-i $startdir/kernel26.install
-i ${pkgdir}/etc/mkinitcpio.d/${pkgname}.preset
Note that the scriptlet edited is the original one in $startdir , because that's the only place where it needs to be, from the packager pov.
While for the preset file, it needs to be copied to $pkgdir and it is edited there.
If you had a checksum for the scriptlet, it would also mean that makepkg -g output could be altered after running makepkg. Very weird..
Ok, this is indeed the case. But if you look at real packages, it seems that after the package is compiled, many times they update the PKGBUILD with the new md5sum values. Again: core/kernel26.
That .install update section in the PKGBUILD is then relegated to a "helper function" role that keep the information in sync when there's a new release, but as the PKGBUILD is distributed, it won't change anything in the .install anymore...
Thus, again, there's no real difference between the .install files and other files used as source.
shining wrote:Btw the whole scriptlet file could be created entirely from the pkgbuild build function.
Sure, and that's a great thing! I actually wondered why so many packages have separate .install when it can be done in the PKGBUILD. Thought it might be some convention, but probably just habit.... I prefer doing it in the PKGBUILD as well, whenever possible...
shining wrote:There might be ways to fix that, though I don't even see any good ones. But why bother ? You said there are loads of valid arguments to have it , but you didn't even give one !
On the other hand, I'm yet to find any of your rebuttals that are not rebutted here again...
shining wrote:What are you worried about here ? Security ? If you think adding a checksum for the install file is going to give you any security, you are badly fooling yourself. If someone is distributing a malicious pkgbuild, it can contain the md5sum of the malicious scriptlet which is shipped with it.
I think you misunderstood me. I'm not complaining, but inquiring. The PKGBUILD system is awesome, and it makes me search out programs that I use but not in the repo/AUR so that I can make a new package. But also, I'm interested in the "how" and "why", and hope to improve things if possible. Now, to me it seems theres an unreasonable distinction to checksum some files needed for a package but not all of them. And thus I set out to ask the elders here on the Forum to see whether someone can shed light on the reasons of the current state. Not trying to piss of anybody, but being interested.
Of course the md5sum is not security, it's a help, nothing more.
As an example: some time ago, there was a package in the community (thus managed by TUs) that had an update. I wanted to check out something in the package, got the PKGBUILD and tried to make it myself - md5sum says that the sources are incorrect.... Obviously something must have gone very bad, because the md5sum field was updated according to the SVN, the package is available on pacman thus it had to build, and the sources used in the package have not been changed for a while so that cannot be a problem....
I've got a package from a trusted source and it is broken, the md5sum told me. So the breakage can be the very same way in the install script, why is the md5sum not allowed to tell me that?
shining wrote:The only security for pkgbuilds is yourself. When you get one from a strange place, you MUST read the pkgbuild/install files.
Of course, never argued against it. But there are different layers of verbosity....
Anyway....

Similar Messages

  • Using subsitiutions in the install scripts

    This should be pretty obvious, but I can't find the answer in the documentation.
    Using Apex 3.1.2, in the Shared Objects, I've created a substitution named "TABLESPACE". The application uses a set of tables, the install should create these tables, and DBA have funny ideas about where these tables should be created, so I'd like to offer the option of having the install process ask for and use the TABLESPACE.
    So I create an install script called "create tables". The script text has the following:
    CREATE TABLE table1 (ID NUMBER, NAME VARCHAR2(30))
    TABLESPACE ??;
    So how do I use the TABLESPACE substitution value in the install script above? Use "&TABLESPACE:", use ":TABLESPACE"?
    Edited by: tjoneslo on Nov 25, 2008 11:56 AM

    To answer my own question. The install scripts are run as sql (or pl/sql) statements. You can access the pre-defined substitution strings via the v('NAME') parameter call (e.g. v('APP_USER')) but the application substitution strings, even though we are prompting for them, are not available.
    Which would make for a good enhancement.

  • The installer found unexpected changes to the install script

    Hi,
    I've just try to install PC Client 15.7 "EBF 23439: 15.7 SP130" Just downloded from Service Market Place on a Win 03 R2 32 bit and on Windows 12 R2 64 bit
    On Win 03 R3 32 bit it works fine but in  Win 12 R2 there isen0t any way to run Sybase Central.
    When I try to uninstall, on each machine, there are only thi message:
    Unable to lunch installer
    The installer found unexpected changes to the install script:

    Hi,
    So you are saying that PC-Client 15.7 SP130 doesn't uninstall? I will look into this.
    If you go to your control panel and installed software.
    What version(s) of Microsoft Studio do you have installed?
    What versions of Microsoft Visual C++ #### Redistributable Packages do you have?
    From what I saw they had pulled the Sybase Central out of PC-Client.
    You might be able to get from ASE 15.5 version of PC-Client.
    Please note that PC-Client with Sybase Central was never certified with Windows 8 or 2012. So you never get Sybase Central to work on those operating systems.
    PC-Client 15.5 last drop should have been certified with Windows 7.
    Thanks,
    Dawn Kim

  • I recently cleared my hardrive and reloaded the install software including snow leopard and now the browser is extremely slow. Any ideas

    I recently cleared my hardrive and reloaded the install software including snow leopard and now the browser is extremely slow. Any ideas

    Your profile says OS 10.5.8, Snow Leopard is 10.6.
    After installing Snow Leopard, did you do a software update? Apple menu / Software update ..
    If you have not run it yet, do so. It will give you the highest versions of Snow Leopard and Safari. That might help.

  • Can the automated script recored in Empirix be used in OATS 8.5 and Above ?

    Can the automated script recored in Empirix be used in OATS 8.5 and Above
    Regards,
    Sujata Mishra

    Sujata
    Yes e-Tester scripts are supported at the moment, however they will not be in the near future.
    Regards
    Alex

  • Can we install ADMT tool in source domain?

    I am novice in AD migrations, The ADMT guide downloaded from MS instructs to install ADMT tool in Target domain, as do a lot of other blogs & discussion threads. Is there any reason that we should install it on Target domain only? Can we not install
    this tool in source domain and still migrate everything or are there any limitations to this or is it not supported by MS? I am just trying to understand if this is a must to be installed on target domain and if so why. Thank you in advance.

    In addition,
    1. Need to setup the DNS
    DNS
    Secondary       zone
    Conditional       forwarder
    ADI       Conditional forwarder
    Stub       zone
    You can go one of above.
    2. Need to create the Trust
    How to Create Two way Transitive Trust – Windows Server 2008 R2
    http://social.technet.microsoft.com/wiki/contents/articles/13906.how-to-create-two-way-transitive-trust-windows-server-2008-r2-en-us.aspx
    3.Use ADMT for users, Groups,password, computer migration, User profiles
    http://blog.thesysadmins.co.uk/category/admt
    ADMT Ver 3 for 2003
    ADMT Ver  3.1 2008
    ADMT Ver 3.2 2008R2
    As of now Windows 2012 does not support the ADMT. However there is some other work arrround.
    4. Permission is required for ADMT
    http://portal.sivarajan.com/2010/04/admt-service-account-permission-and.html
    You will get lots of stuffs on ADMT.
    http://social.technet.microsoft.com/Forums/windowsserver/en-US/2a3c69ec-faea-457e-b088-fcc694365054/advice-needed-on-company-merger-migration?forum=winserverMigration
    Regards~Biswajit
    Disclaimer: This posting is provided & with no warranties or guarantees and confers no rights.
    MCP 2003,MCSA 2003, MCSA:M 2003, CCNA, MCTS, Enterprise Admin
    MY BLOG
    Domain Controllers inventory-Quest Powershell
    Generate Report for Bulk Servers-LastBootUpTime,SerialNumber,InstallDate
    Generate a Report for installed Hotfix for Bulk Servers

  • I bought cs6 student and teacher edition, but it says in the instruction if i wanted to install it in mac, i should click the install.app.

    but the dvd only got set-up.exe (only for windows)??? how can i install it to mac?
    Student and Teacher Edition Information

    Bakz did you just purchase CS6?  If so you may want to work with your reseller to obtain a Mac version of the license.
    If that fails then please see Order product | Platform, language swap for information on how to request a change of your Windows license to a Mac OS license.

  • Once CC Apps Downloaded can the install file be copied to each mac for reinstall - have 5 to do?

    Exactly what heading suggests.
    Once I have downloaded my apps from Creative Cloud for 1 mac, can the "installer" file/s be copied to other macs and simply be run from there for installing, rather than having to Download again for each Mac - very time consuming and puts a huge load on our Internet usage.
    Up for about a 4.5GB download x 5 macs - not good
    Gee, wish I had a disk for this . . .

    Does this apply for a TEAM  license (which I have) or only the ENTERPRISE license.
    Do you have a link for that page?

  • Where can the install.app file be found when installing Adobe Creative Suite CS5, download version ?

    I have the same problem that the user who wrote the post "Trouble installing content files on Mac", but his post went unanswered. Here is the link: http://forums.adobe.com/message/4221280. I am trying to install the adobe creative suite CS5 downloaded from the internet, and what I have is a dmg file. When I open it, there is only a read me and a folder named "English". In the read me I go to the install instructions, and they tell me to double-click in Install.app, a file which doesn't exist. What am I doing wrong?

    I downloaded it from Adobe Store. When I open the dmg file I see the read me.pdf and the English folder, nothing more. Perhaps the problem is that I have already installed the program in one computer, this is happening to me trying to install it in another one. Could that be it, that I need another license in order to make it work?

  • I deleted the " recently added " from my source list

    I was trying to empty the file and it got removed from my source list. How can I get it back or create another?
    desktop   Windows XP  

    Why don't you just create another smart playlist and call it "Recently Added" the default specs for this file (way Apple set it up) are Check in Just Recent Add Box, then in the parameters: first box: "Date Added", next box "in the last", next box "2", next box "weeks". Other defaults are limit to "25" songs and select "random". Finally, the "live updating" box is checked. Good luck!

  • How to change the alphabetic order in my source list

    I don't want my source list to be in an alphabetic order. could you tell me how to change that?

    http://answers.microsoft.com/en-us/mac

  • Can the PBL scripts be used to complete human interaction step of a process

    Hi,
    I wish to have two threads between a split-join.
    On thread has external notification-wait and other has a human interaction step.
    The idea is just to show in a person's inbox a pending human activity(but should not actually work on it using workspace). Some other X application sends an 'external notification' to this process(notification-wait activity) saying that this human step is complete. Then the notification-wait activity will change the status of the process in other flow that human step is completed by a participant 'XYZ'.
    You may suggest that instead of having split and join have an external human task which will then be completed by external application. But it is like.., currently the project demands that at times completing human task may not be so real time. A person completes task in an external app and say after 1 day that human step is to go ahead. in BAM DB and Process Data mart DB this human step is to be marked complete so that meaningful dashboards can be created.
    So to say in other words is it possible to write some
    pbl-scripts with some papi code which can update the process that human interaction step is complete?
    Also is it possible for an admin user to complete a human task but actually updating the process db in such a way that some other participant has actually worked on it.?
    Please, Can you hook me up the right PAPI classes which can help me out with this?
    Thanks & Regards,
    Govinda

    This list is more complete and was updated on 02/20/2011. <br />
    http://www.mvps.org/dmcritchie/firefox/keyboard.htm
    It has the new keyboard 4.0 command for Panorama, but I didn't verify that list is as complete as I know the keyboard shortcuts - but a quick glance looks like it is.

  • How can the query results include null if it's a required field on the front end?

    I executed a query that simply asked for all data points on a single table.
    I am trying to figure out why the query would report back as having all "Null" values in 3 of 10 columns. The information is required for the end user to enter before the system allows
    them save a record.

    You understand correctly.
    When you look up de service code do you get an description from table DDLValues?
    THIS IS CORRECT
    If the service code is in there, you should check why de ID is not correct.
    I dont know what this means. Check why the "ID" is not correct? What ID?
    The DDLvalues table has no objects on which it depends. It that normal?
    This is the code for the individual services
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE TABLE [dbo].[IndividualService](
    [ID] [bigint] IDENTITY(1,1) NOT NULL,
    [StudentID] [uniqueidentifier] NULL,
    [DateofService] [datetime] NULL,
    [ServiceCode] [int] NULL,
    [FocusCode] [int] NULL,
    [InterventionCode] [int] NULL,
    [ClinicianID] [uniqueidentifier] NULL,
    [Schoolid] [bigint] NULL,
    [Approved] [int] NULL CONSTRAINT [DF_IndividualService_Approved]  DEFAULT ((0)),
     CONSTRAINT [PK_IndividualService] PRIMARY KEY CLUSTERED 
    [ID] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    ) ON [PRIMARY]
    GO
    ALTER TABLE [dbo].[IndividualService]  WITH CHECK ADD  CONSTRAINT [FK_IndividualService_aspnet_Users] FOREIGN KEY([StudentID])
    REFERENCES [dbo].[Students] ([StudentID])
    ON DELETE CASCADE
    GO
    ALTER TABLE [dbo].[IndividualService] CHECK CONSTRAINT [FK_IndividualService_aspnet_Users]
    GO
    ALTER TABLE [dbo].[IndividualService]  WITH CHECK ADD  CONSTRAINT [FK_IndividualService_aspnet_Users1] FOREIGN KEY([ClinicianID])
    REFERENCES [dbo].[aspnet_Users] ([UserId])
    GO
    ALTER TABLE [dbo].[IndividualService] CHECK CONSTRAINT [FK_IndividualService_aspnet_Users1]
    GO
    ALTER TABLE [dbo].[IndividualService]  WITH CHECK ADD  CONSTRAINT [FK_IndividualService_DDLValues] FOREIGN KEY([FocusCode])
    REFERENCES [dbo].[DDLValues] ([DDLValueID])
    GO
    ALTER TABLE [dbo].[IndividualService] CHECK CONSTRAINT [FK_IndividualService_DDLValues]
    GO
    ALTER TABLE [dbo].[IndividualService]  WITH CHECK ADD  CONSTRAINT [FK_IndividualService_DDLValues1] FOREIGN KEY([InterventionCode])
    REFERENCES [dbo].[DDLValues] ([DDLValueID])
    GO
    ALTER TABLE [dbo].[IndividualService] CHECK CONSTRAINT [FK_IndividualService_DDLValues1]
    GO
    ALTER TABLE [dbo].[IndividualService]  WITH CHECK ADD  CONSTRAINT [FK_IndividualService_DDLValues2] FOREIGN KEY([ServiceCode])
    REFERENCES [dbo].[DDLValues] ([DDLValueID])
    GO
    ALTER TABLE [dbo].[IndividualService] CHECK CONSTRAINT [FK_IndividualService_DDLValues2]
    GO
    ALTER TABLE [dbo].[IndividualService]  WITH CHECK ADD  CONSTRAINT [FK_IndividualService_Schools] FOREIGN KEY([Schoolid])
    REFERENCES [dbo].[Schools] ([SchoolID])
    GO
    ALTER TABLE [dbo].[IndividualService] CHECK CONSTRAINT [FK_IndividualService_Schools]
    GO

  • Trying to update iTunes, the installer keeps freezing at 'Running iTunes Installer Scripts'.  i've tried several different versions of iTunes and can't install any of them.  I'm stuck with Version 4!!  Help!

    I'm trying to update iTunes on my mac (Power Mac G5 running tiger), but it always freezes at 'Running itunes installer script'.  I have tried a few different versions of iTunes, but I have the same problem with all of them.  I'm stuck on version 4 (which came with my os discs)!  Help?! 

    Ok, First this link should solve the windows scripting host error. I used "Download windows script host" in a google search and it was the first hyperlink.
    http://www.microsoft.com/downloads/details.aspx?FamilyId=C717D943-7E4B-4622-86EB -95A22B832CAA&displaylang=en
    I'm assuming you are trying to run the installer from apple. What I would suggest is you download the installer manually to your desktop then launch the installer. If try to run the installer over the intertubes you may run into a problem like you did.
    Then I would uninstall itunes 8 and any software associated with it like the apple update software, quicktime, apple mobile device support. However uninstalling itunes should remove any additional software it installs. Then clean out your temp folder:
    6. Clean out your temp folders,
    a. C:\windows\temp (if one exists)
    b. C:\Documents and Settings\{username}\Local Settings\Temp
    Sometimes installers will pick up old files or won’t delete their temporary files.
    Then with a newly download installer on your desktop try launching it. Let me know if that helps.
    Here is an apple doc that help.
    http://support.apple.com/kb/TS1331
    Message was edited by: CoJeff

  • Install media 2012.08.04 and latest install scripts - the shell

    I'm just curious about this: the latest install media uses zsh, the install scripts are bash scripts - the shell you're dropped in after "arch-chroot" is sh (SHELL=/bin/sh chroot "$@")
    Why do we use sh in the chrooted environment?

    Allan wrote:Because zsh is not installed by default...
    I understand, but let me rephrase : why the shell in the chrooted environment is sh and not bash? Isn't bash installed by default?
    In the previous version of the install scripts (present in the previous version of the install cd) the chrooted shell was bash, and in Arch "sh" is a symlink to bash (if I understand correctly, calling "bash" as "sh" make bash behave like sh).
    So, there's a reason to use sh in the chrooted installation?

Maybe you are looking for